1+ # 1.4.7 (Sep 30, 2019)
2+
3+ This is a minor release focused on KafkaConsumer performance, Admin Client
4+ improvements, and Client concurrency. The KafkaConsumer iterator implementation
5+ has been greatly simplified so that it just wraps consumer.poll(). The prior
6+ implementation will remain available for a few more releases using the optional
7+ KafkaConsumer config: ` legacy_iterator=True ` . This is expected to improve
8+ consumer throughput substantially and help reduce heartbeat failures / group
9+ rebalancing.
10+
11+ Client
12+ * Send socket data via non-blocking IO with send buffer (dpkp / PR #1912 )
13+ * Rely on socket selector to detect completed connection attempts (dpkp / PR #1909 )
14+ * Improve connection lock handling; always use context manager (melor,dpkp / PR #1895 )
15+ * Reduce client poll timeout when there are no in-flight requests (dpkp / PR #1823 )
16+
17+ KafkaConsumer
18+ * Do not use wakeup when sending fetch requests from consumer (dpkp / PR #1911 )
19+ * Wrap ` consumer.poll() ` for KafkaConsumer iteration (dpkp / PR #1902 )
20+ * Allow the coordinator to auto-commit on old brokers (justecorruptio / PR #1832 )
21+ * Reduce internal client poll timeout for (legacy) consumer iterator interface (dpkp / PR #1824 )
22+ * Use dedicated connection for group coordinator (dpkp / PR #1822 )
23+ * Change coordinator lock acquisition order (dpkp / PR #1821 )
24+ * Make ` partitions_for_topic ` a read-through cache (Baisang / PR #1781 ,#1809 )
25+ * Fix consumer hanging indefinitely on topic deletion while rebalancing (commanderdishwasher / PR #1782 )
26+
27+ Miscellaneous Bugfixes / Improvements
28+ * Fix crc32c avilability on non-intel architectures (ossdev07 / PR #1904 )
29+ * Load system default SSL CAs if ` ssl_cafile ` is not provided (iAnomaly / PR #1883 )
30+ * Catch py3 TimeoutError in BrokerConnection send/recv (dpkp / PR #1820 )
31+ * Added a function to determine if bootstrap is successfully connected (Wayde2014 / PR #1876 )
32+
33+ Admin Client
34+ * Add ACL api support to KafkaAdminClient (ulrikjohansson / PR #1833 )
35+ * Add ` sasl_kerberos_domain_name ` config to KafkaAdminClient (jeffwidman / PR #1852 )
36+ * Update ` security_protocol ` config documentation for KafkaAdminClient (cardy31 / PR #1849 )
37+ * Break FindCoordinator into request/response methods in KafkaAdminClient (jeffwidman / PR #1871 )
38+ * Break consumer operations into request / response methods in KafkaAdminClient (jeffwidman / PR #1845 )
39+ * Parallelize calls to ` _send_request_to_node() ` in KafkaAdminClient (davidheitman / PR #1807 )
40+
41+ Test Infrastructure / Documentation / Maintenance
42+ * Add Kafka 2.3.0 to test matrix and compatibility docs (dpkp / PR #1915 )
43+ * Convert remaining ` KafkaConsumer ` tests to ` pytest ` (jeffwidman / PR #1886 )
44+ * Bump integration tests to 0.10.2.2 and 0.11.0.3 (jeffwidman / #1890 )
45+ * Cleanup handling of ` KAFKA_VERSION ` env var in tests (jeffwidman / PR #1887 )
46+ * Minor test cleanup (jeffwidman / PR #1885 )
47+ * Use ` socket.SOCK_STREAM ` in test assertions (iv-m / PR #1879 )
48+ * Sanity test for ` consumer.topics() ` and ` consumer.partitions_for_topic() ` (Baisang / PR #1829 )
49+ * Cleanup seconds conversion in client poll timeout calculation (jeffwidman / PR #1825 )
50+ * Remove unused imports (jeffwidman / PR #1808 )
51+ * Cleanup python nits in RangePartitionAssignor (jeffwidman / PR #1805 )
52+ * Update links to kafka consumer config docs (jeffwidman)
53+ * Fix minor documentation typos (carsonip / PR #1865 )
54+ * Remove unused/weird comment line (jeffwidman / PR #1813 )
55+ * Update docs for ` api_version_auto_timeout_ms ` (jeffwidman / PR #1812 )
56+
57+
158# 1.4.6 (Apr 2, 2019)
259
360This is a patch release primarily focused on bugs related to concurrency,
461SSL connections and testing, and SASL authentication:
562
6-
763Client Concurrency Issues (Race Conditions / Deadlocks)
8-
964* Fix race condition in ` protocol.send_bytes ` (isamaru / PR #1752 )
1065* Do not call ` state_change_callback ` with lock (dpkp / PR #1775 )
1166* Additional BrokerConnection locks to synchronize protocol/IFR state (dpkp / PR #1768 )
@@ -14,12 +69,10 @@ Client Concurrency Issues (Race Conditions / Deadlocks)
1469* Hold lock during ` client.check_version ` (dpkp / PR #1771 )
1570
1671Producer Wakeup / TimeoutError
17-
1872* Dont wakeup during ` maybe_refresh_metadata ` -- it is only called by poll() (dpkp / PR #1769 )
1973* Dont do client wakeup when sending from sender thread (dpkp / PR #1761 )
2074
2175SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
22-
2376* Wrap SSL sockets after connecting for python3.7 compatibility (dpkp / PR #1754 )
2477* Allow configuration of SSL Ciphers (dpkp / PR #1755 )
2578* Maintain shadow cluster metadata for bootstrapping (dpkp / PR #1753 )
@@ -28,13 +81,11 @@ SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
2881* Reset reconnect backoff on SSL connection (dpkp / PR #1777 )
2982
3083SASL - OAuthBearer support / api version bugfix
31-
3284* Fix 0.8.2 protocol quick detection / fix SASL version check (dpkp / PR #1763 )
3385* Update sasl configuration docstrings to include supported mechanisms (dpkp)
3486* Support SASL OAuthBearer Authentication (pt2pham / PR #1750 )
3587
3688Miscellaneous Bugfixes
37-
3889* Dont force metadata refresh when closing unneeded bootstrap connections (dpkp / PR #1773 )
3990* Fix possible AttributeError during conn._ close_socket (dpkp / PR #1776 )
4091* Return connection state explicitly after close in connect() (dpkp / PR #1778 )
0 commit comments