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
+
1
57
# 1.4.6.post2 (Aug 27, 2019)
2
58
* Cherrypick change from upstream to make blocking calls for Kafka metadata if we don't have any
3
59
@@ -11,9 +67,7 @@ we only build for versions 0.10.2.2 and 1.1.0 and 1.1.1
11
67
This is a patch release primarily focused on bugs related to concurrency,
12
68
SSL connections and testing, and SASL authentication:
13
69
14
-
15
70
Client Concurrency Issues (Race Conditions / Deadlocks)
16
-
17
71
* Fix race condition in ` protocol.send_bytes ` (isamaru / PR #1752 )
18
72
* Do not call ` state_change_callback ` with lock (dpkp / PR #1775 )
19
73
* Additional BrokerConnection locks to synchronize protocol/IFR state (dpkp / PR #1768 )
@@ -22,12 +76,10 @@ Client Concurrency Issues (Race Conditions / Deadlocks)
22
76
* Hold lock during ` client.check_version ` (dpkp / PR #1771 )
23
77
24
78
Producer Wakeup / TimeoutError
25
-
26
79
* Dont wakeup during ` maybe_refresh_metadata ` -- it is only called by poll() (dpkp / PR #1769 )
27
80
* Dont do client wakeup when sending from sender thread (dpkp / PR #1761 )
28
81
29
82
SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
30
-
31
83
* Wrap SSL sockets after connecting for python3.7 compatibility (dpkp / PR #1754 )
32
84
* Allow configuration of SSL Ciphers (dpkp / PR #1755 )
33
85
* Maintain shadow cluster metadata for bootstrapping (dpkp / PR #1753 )
@@ -36,13 +88,11 @@ SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
36
88
* Reset reconnect backoff on SSL connection (dpkp / PR #1777 )
37
89
38
90
SASL - OAuthBearer support / api version bugfix
39
-
40
91
* Fix 0.8.2 protocol quick detection / fix SASL version check (dpkp / PR #1763 )
41
92
* Update sasl configuration docstrings to include supported mechanisms (dpkp)
42
93
* Support SASL OAuthBearer Authentication (pt2pham / PR #1750 )
43
94
44
95
Miscellaneous Bugfixes
45
-
46
96
* Dont force metadata refresh when closing unneeded bootstrap connections (dpkp / PR #1773 )
47
97
* Fix possible AttributeError during conn._ close_socket (dpkp / PR #1776 )
48
98
* Return connection state explicitly after close in connect() (dpkp / PR #1778 )
0 commit comments