Skip to content

Releases: dpkp/kafka-python

1.3.4

13 Aug 20:50
Compare
Choose a tag to compare

Bugfixes

  • Avoid multiple connection attempts when refreshing metadata (dpkp #1067)
  • Catch socket.errors when sending / recving bytes on wake socketpair (dpkp #1069)
  • Deal with brokers that reappear with different IP address (originsmike #1085)
  • Fix join-time-max and sync-time-max metrics to use Max() measure function (billyevans #1146)
  • Raise AssertionError when decompression unsupported (bts-webber #1159)
  • Catch ssl.EOFErrors on Python3.3 so we close the failing conn (Ormod #1162)
  • Select on sockets to avoid busy polling during bootstrap (dpkp #1175)
  • Initialize metadata_snapshot in group coordinator to avoid unnecessary rebalance (dpkp #1174)

Client

  • Timeout idle connections via connections_max_idle_ms (dpkp #1068)
  • Warn, dont raise, on DNS lookup failures (dpkp #1091)
  • Support exponential backoff for broker reconnections -- KIP-144 (dpkp #1124)
  • Add gssapi support (Kerberos) for SASL (Harald-Berghoff #1152)
  • Add private map of api key -> min/max versions to BrokerConnection (dpkp #1169)

Consumer

  • Backoff on unavailable group coordinator retry (dpkp #1125)
  • Only change_subscription on pattern subscription when topics change (Artimi #1132)
  • Add offsets_for_times, beginning_offsets and end_offsets APIs (tvoinarovskyi #1161)

Producer

  • Raise KafkaTimeoutError when flush times out (infecto)
  • Set producer atexit timeout to 0 to match del (Ormod #1126)

Core / Protocol

  • 0.11.0.0 protocol updates (only - no client support yet) (dpkp #1127)
  • Make UnknownTopicOrPartitionError retriable error (tvoinarovskyi)

Test Infrastructure

  • pylint 1.7.0+ supports python 3.6 and merge py36 into common testenv (jianbin-wei #1095)
  • Add kafka 0.10.2.1 into integration testing version (jianbin-wei #1096)
  • Disable automated tests for python 2.6 and kafka 0.8.0 and 0.8.1.1 (jianbin-wei #1096)
  • Support manual py26 testing; dont advertise 3.3 support (dpkp)
  • Add 0.11.0.0 server resources, fix tests for 0.11 brokers (dpkp)
  • Use fixture hostname, dont assume localhost (dpkp)
  • Add 0.11.0.0 to travis test matrix, remove 0.10.1.1; use scala 2.11 artifacts (dpkp #1176)

Logging / Error Messages

  • Improve error message when expiring batches in KafkaProducer (dpkp #1077)
  • Update producer.send docstring -- raises KafkaTimeoutError (infecto)
  • Use logging's built-in string interpolation (jeffwidman)
  • Fix produce timeout message (melor #1151)
  • Fix producer batch expiry messages to use seconds (dnwe)

Documentation

  • Fix typo in KafkaClient docstring (jeffwidman #1054)
  • Update README: Prefer python-lz4 over lz4tools (kiri11 #1057)
  • Fix poll() hyperlink in KafkaClient (jeffwidman)
  • Update RTD links with https / .io (jeffwidman #1074)
  • Describe consumer thread-safety (ecksun)
  • Fix typo in consumer integration test (jeffwidman)
  • Note max_in_flight_requests_per_connection > 1 may change order of messages (tvoinarovskyi #1149)

1.3.3

25 Apr 21:23
Compare
Choose a tag to compare
Release 1.3.3

1.3.2

25 Apr 21:23
Compare
Choose a tag to compare
Patch Release 1.3.2

1.3.1

19 Aug 17:35
Compare
Choose a tag to compare

Bugfixes

  • Fix AttributeError in BrokerConnectionMetrics after reconnecting

1.3.0

05 Aug 15:14
Compare
Choose a tag to compare

Incompatible Changes

  • Delete KafkaConnection class (dpkp 769)
  • Rename partition_assignment -> assignment in MemberMetadata for consistency
  • Move selectors34 and socketpair to kafka.vendor (dpkp 785)
  • Change api_version config to tuple; deprecate str with warning (dpkp 761)
  • Rename _DEFAULT_CONFIG -> DEFAULT_CONFIG in KafkaProducer (dpkp 788)

Improvements

  • Vendor six 1.10.0 to eliminate runtime dependency (dpkp 785)
  • Add KafkaProducer and KafkaConsumer.metrics() with instrumentation similar to java client (dpkp 754 / 772 / 794)
  • Support Sasl PLAIN authentication (larsjsol PR 779)
  • Add checksum and size to RecordMetadata and ConsumerRecord (KAFKA-3196 / 770 / 594)
  • Use MetadataRequest v1 for 0.10+ api_version (dpkp 762)
  • Fix KafkaConsumer autocommit for 0.8 brokers (dpkp 756 / 706)
  • Improve error logging (dpkp 760 / 759)
  • Adapt benchmark scripts from https://github.com/mrafayaleem/kafka-jython (dpkp 754)
  • Add api_version config to KafkaClient (dpkp 761)
  • New Metadata method with_partitions() (dpkp 787)
  • Use socket_options configuration to setsockopts(). Default TCP_NODELAY (dpkp 783)
  • Expose selector type as config option (dpkp 764)
  • Drain pending requests to the coordinator before initiating group rejoin (dpkp 798)
  • Send combined size and payload bytes to socket to avoid potentially split packets with TCP_NODELAY (dpkp 797)

Bugfixes

  • Ignore socket.error when checking for protocol out of sync prior to socket close (dpkp 792)
  • Fix offset fetch when partitions are manually assigned (KAFKA-3960 / 786)
  • Change pickle_method to use python3 special attributes (jpaulodit 777)
  • Fix ProduceResponse v2 throttle_time_ms
  • Always encode size with MessageSet (#771)
  • Avoid buffer overread when compressing messageset in KafkaProducer
  • Explicit format string argument indices for python 2.6 compatibility
  • Simplify RecordMetadata; short circuit callbacks (#768)
  • Fix autocommit when partitions assigned manually (KAFKA-3486 / #767 / #626)
  • Handle metadata updates during consumer rebalance (KAFKA-3117 / #766 / #701)
  • Add a consumer config option to exclude internal topics (KAFKA-2832 / #765)
  • Protect writes to wakeup socket with threading lock (#763 / #709)
  • Fetcher spending unnecessary time during metrics recording (KAFKA-3785)
  • Always use absolute_import (dpkp)

Test / Fixtures

  • Catch select errors while capturing test fixture logs
  • Fix consumer group test race condition (dpkp 795)
  • Retry fixture failures on a different port (dpkp 796)
  • Dump fixture logs on failure

Documentation

  • Fix misspelling of password (ssaamm 793)
  • Document the ssl_password config option (ssaamm 780)
  • Fix typo in KafkaConsumer documentation (ssaamm 775)
  • Expand consumer.fetcher inline comments
  • Update kafka configuration links -> 0.10.0.0 docs
  • Fixup metrics_sample_window_ms docstring in consumer

1.2.5

05 Aug 15:17
Compare
Choose a tag to compare

Bugfixes

  • Fix bug causing KafkaProducer to double-compress message batches on retry
  • Check for double-compressed messages in KafkaConsumer, log warning and optionally skip
  • Drop recursion in _unpack_message_set; only decompress once

1.2.4

05 Aug 15:18
Compare
Choose a tag to compare

Bugfixes

  • Update consumer_timeout_ms docstring - KafkaConsumer raises StopIteration, no longer ConsumerTimeout
  • Use explicit subscription state flag to handle seek() during message iteration
  • Fix consumer iteration on compacted topics (dpkp PR 752)
  • Support ssl_password config when loading cert chains (amckemie PR 750)

1.2.3

05 Aug 15:19
Compare
Choose a tag to compare

Patch Improvements

  • Fix gc error log: avoid AttributeError in _unregister_cleanup (dpkp PR 747)
  • Wakeup socket optimizations (dpkp PR 740)
  • Assert will be disabled by "python -O" (tyronecai PR 736)
  • Randomize order of topics/partitions processed by fetcher to improve balance (dpkp PR 732)
  • Allow client.check_version timeout to be set in Producer and Consumer constructors (eastlondoner PR 647)

1.2.2

05 Aug 15:19
Compare
Choose a tag to compare

Bugfixes

  • Clarify timeout unit in KafkaProducer close and flush (ms7s PR 734)
  • Avoid busy poll during metadata refresh failure with retry_backoff_ms (dpkp PR 733)
  • Check_version should scan nodes until version found or timeout (dpkp PR 731)
  • Fix bug which could cause least_loaded_node to always return the same unavailable node (dpkp PR 730)
  • Fix producer garbage collection with weakref in atexit handler (dpkp PR 728)
  • Close client selector to fix fd leak (msmith PR 729)
  • Tweak spelling mistake in error const (steve8918 PR 719)
  • Rearrange connection tests to separate legacy KafkaConnection

1.2.1

05 Aug 15:19
Compare
Choose a tag to compare

Bugfixes

  • Fix regression in MessageSet decoding wrt PartialMessages (#716)
  • Catch response decode errors and log details (#715)
  • Fix Legacy support url (#712 - JonasGroeger)
  • Update sphinx docs re 0.10 broker support