Skip to content

0.9.2

Compare
Choose a tag to compare
@edenhill edenhill released this 08 Nov 20:17
· 1 commit to 0.9.2.x since this release

Additions

  • Event interface (see rd_kafka_event_type_t)
  • VerifiableConsumer and VerifiableProducer clients for running official kafkatests
  • Added support for LZ4 compression (KIP-57)
  • Added rd_kafka_commit_queue()
  • Added rd_kafka_queue_length()
  • Added rd_kafka_flush()
  • Added IO FD-based queue triggering for including librdkafka in IO-based poll loops (issue #749)
  • Added enable.partition.eof to allow turning off PARTITION_EOF
  • auto.offset.reset: added aliases: beginning and end
  • Added experimental blocking produce call (.._F_BLOCK flag to produce())

Enhancements

  • rd_kafka_version_str(): return a git-aware version string
  • Retry metadata requests if returned response is empty
  • Expedite MetadataRequests in front of other requests
  • Improved ...metadata() selection of broker to query
  • Added ERR__TIMED_OUT_QUEUE to differentiate between in-transit and in-queue timeouts
  • rdkafka_performance: added -N to disable delivery reports
  • rdkafka_performance: added -G for high-level KafkaConsumer
  • Regex support on Win32: added fallback regex implementation (issue #552)
  • Producer: Allow unlimited number of messages per batch/MessageSet (bump batch.num.messages to 10000)
  • Producer: Copy small message payloads to transmit buffer (issue #788)
  • .._conf_set(): revert to default value (if any) when passed value==NULL.
  • Redesigned toppar op version barriers to be more robust
  • Automatically enable api.version.request for broker.version.fallback>=0.10
  • Expedite termination by broadcasting state change on destroy
  • Improve ALL_BROKERS_DOWN event generation
  • Fall back to mutex-protected variables when 32 or 64 bit atomics are not available (#693)
  • Disable SSLv3

Consumer fixes

  • Fix crash in committed() with short timeouts (issue #827)
  • Dont attempt offset commits for empty non-null list
  • cgrp: clear stored member_id on UNKNOWN_MEMBER_ID errors
  • handle_JoinGroup: dont propagate UnknownMemberId to app
  • cgrp term: force final unassign call even if waiting for rebalance
  • Dont send Heartbeats when calling rebalance_cb(REVOKE)
  • cgrp: ignore outdated Join & Sync responses when state has transitioned
  • Dont propagate error for empty commits when internal commits are retried
  • Stop offset_query_tmr when stopping fetcher
  • OffsetCommit&OffsetFetch request: properly coalesce partitions for the same topic (issue #785)
  • C++: added Consumer.seek() (#699)
  • Fix lock ordering issue in fetcher
  • Update subscription on topic changes (issues #802, #644, #576, #461)
  • Fixed a number of consumer (group) corner-cases
  • Resume GroupCoord queries on all errors (#768)
  • Error out on unknown partition.assignment.strategy:s
  • Maintain cgrp version barrier for relevant internal request ops (fixes #761)
  • Dynamically increase the max fetch size when needed (#597, by @takano-akio)
  • Proper timeout calculation for consume(), consumer_poll(), etc
  • Properly handle empty assignments in SyncGroupResponse (#603)
  • Fixed a number of hang-on-termination issues
  • Consumers could stall in offset-wait state on leader change for up to socket.timeout.ms * retries (#843)

Producer fixes

  • Send uncompressed if compression messageset is larger than uncompressed (issue #781)
  • Proper ProducerResponse error checking before retries (issue #777)
  • Time out messages on toppar xmit msgq too (fixes #776, #672)
  • Dont create cgrp for producers if group.id is configured (issue #691)
  • Fixed a number of hang-on-termination issues

General fixes

  • Bring down the connection regardless of socket.max.fails if in-flight requests time out (#756)
  • Count partially sent buffers as in-flight when timeout scanning (issue #756)
  • Dont insert requests in front of partly sent SSL requests
  • Reset partially sent buffer's offsets to 0 on disconnect (issue #756, #792)
  • Dont prepend FLASH messages before partially sent buffers (possibly #756)
  • Time out broker retry bufs (issue #776)
  • Count topic_t app refcounts separately (issues #345, #821)
  • Clean up OpenSSL global locks when all librdkafka instances are gone (issue #815)
  • Fixed SSL broker_fail() arguments (issue #796)
  • Improved purging of partition op & message queues to speed up termination
  • Proper thread creation error propagation (issue #712)
  • Forwarded queue's content was not properly moved to dest queue on fwd_set()
  • Avoid endless loop when reconnect.backoff.jitter.ms is low (#779)
  • Fix double free of topic.blacklist (issue #778)
  • Fix SASL PLAIN auth (broken in 0.9.1)
  • rdkafka_performance: could exit before all msgs sent when host was slow
  • query_watermark_offsets() workaround for KAFKA-1588 (issue #700)
  • Proper shrinking of rktparlist (issue #739 reported by @diazdiego86)
  • query_watermark: Trigger leader query if leader not known (closes #694, fix by @JohanAR)
  • Broadcast broker state changes (et.al) to expedite waiter wakeups (closes #695)
  • Properly handle empty sasl.kerberos.kinit.cmd (seen in #688)
  • rd_kafka_new: delete conf only on success (#836 by @julien-lecomte)