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
+
1
58
# 1.4.6 (Apr 2, 2019)
2
59
3
60
This is a patch release primarily focused on bugs related to concurrency,
4
61
SSL connections and testing, and SASL authentication:
5
62
6
-
7
63
Client Concurrency Issues (Race Conditions / Deadlocks)
8
-
9
64
* Fix race condition in ` protocol.send_bytes ` (isamaru / PR #1752 )
10
65
* Do not call ` state_change_callback ` with lock (dpkp / PR #1775 )
11
66
* Additional BrokerConnection locks to synchronize protocol/IFR state (dpkp / PR #1768 )
@@ -14,12 +69,10 @@ Client Concurrency Issues (Race Conditions / Deadlocks)
14
69
* Hold lock during ` client.check_version ` (dpkp / PR #1771 )
15
70
16
71
Producer Wakeup / TimeoutError
17
-
18
72
* Dont wakeup during ` maybe_refresh_metadata ` -- it is only called by poll() (dpkp / PR #1769 )
19
73
* Dont do client wakeup when sending from sender thread (dpkp / PR #1761 )
20
74
21
75
SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
22
-
23
76
* Wrap SSL sockets after connecting for python3.7 compatibility (dpkp / PR #1754 )
24
77
* Allow configuration of SSL Ciphers (dpkp / PR #1755 )
25
78
* Maintain shadow cluster metadata for bootstrapping (dpkp / PR #1753 )
@@ -28,13 +81,11 @@ SSL - Python3.7 Support / Bootstrap Hostname Verification / Testing
28
81
* Reset reconnect backoff on SSL connection (dpkp / PR #1777 )
29
82
30
83
SASL - OAuthBearer support / api version bugfix
31
-
32
84
* Fix 0.8.2 protocol quick detection / fix SASL version check (dpkp / PR #1763 )
33
85
* Update sasl configuration docstrings to include supported mechanisms (dpkp)
34
86
* Support SASL OAuthBearer Authentication (pt2pham / PR #1750 )
35
87
36
88
Miscellaneous Bugfixes
37
-
38
89
* Dont force metadata refresh when closing unneeded bootstrap connections (dpkp / PR #1773 )
39
90
* Fix possible AttributeError during conn._ close_socket (dpkp / PR #1776 )
40
91
* Return connection state explicitly after close in connect() (dpkp / PR #1778 )
0 commit comments