Skip to content

v0.11.4

Compare
Choose a tag to compare
@edenhill edenhill released this 28 Mar 14:36
· 1900 commits to master since this release

Maintenance release

Default changes

  • socket.max.fails changed to 1 to provide same functionality (fail request immediately on error) now when retries are working properly again.
  • fetch.max.bytes (new config property) is automatically adjusted to be >= message.max.bytes, and receive.message.max.bytes is automatically adjusted to be > fetch.max.bytes. (#1616)

New features

Noteworthy fixes

  • Formalise and fix Producer retries and retry-ordering (#623, #1092, #1432, #1476, #1421)
    • Ordering is now retained despite retries if max.in.flight=1.
    • Behaviour is now documented
  • Fix timeouts for retried requests and properly handle retries for all request types (#1497)
  • Add and use fetch.max.bytes to limit total Fetch response size (KIP-74, #1616). Fixes "Invalid response size" issues.

Enhancements

  • Added sasl.mechanism and compression.type configuration property aliases for conformance with Java client.
  • Improved Producer performance
  • C++: add c_ptr() to Handle,Topic,Message classes to expose underlying librdkafka object
  • Honour per-message partition in produce_batch() if MSG_F_PARTITION set (@barrotsteindev, closes #1604)
  • Added on_request_sent() interceptor
  • Added experimental flexible producer queuing.strategy=fifo|lifo
  • Broker address DNS record round-robin: try to maintain round-robin position across resolve calls.
  • Set system thread name for internal librdkafka threads (@tbsaunde)
  • Added more concise and user-friendly 'consumer' debug context
  • Add partitioner (string) topic configuration property to set the builtin partitioners
  • Generate rdkafka-static.pc (pkg-config) for static linking

Fixes

  • Fix producer memory leak on <0.11 brokers when compressed messageset is below copy threshold (closes #1534)
  • CRC32C - fix unaligned access on ARM (@Soundman32)
  • Fix read after free in buf_write_seek
  • Fix broker wake up (#1667, @gduranceau)
  • Fix consumer hang when rebalancing during commit (closes #1605, @ChenyuanHu)
  • CMake fixes for Windows (@raulbocanegra)
  • LeaveGroup was not sent on close when doing final offset commits
  • Fix for consumer slowdown/stall on compacted topics where actual last offset < MsgSet.LastOffset (KAFKA-5443)
  • Fix global->topic conf fallthru in C++ API
  • Fix infinite loop on LeaveGroup failure
  • Fix possible crash on OffsetFetch retry
  • Incorporate compressed message count when deciding on fetch backoff (#1623)
  • Fix debug-only crash on Solaris (%s NULL) (closes #1423)
  • Drain broker ops queue on termination to avoid hang (closes #1596)
  • cmake: Allow build static library (#1602, @proller)
  • Don't store invalid offset as next one when pausing (#1453, @mfontanini)
  • use #if instead of #ifdef / defined() for atomics (#1592, @vavrusa)
  • fixed .lib paths in nuget packaging (#1587)
  • Fixes strerror_r crash on alpine (#1580, @skarlsson)
  • Allow arbitrary lengthed (>255) SASL PLAIN user/pass (#1691, #1692)
  • Trigger ApiVersionRequest on reconnect if broker.version.fallback supports it (closes #1694)
  • Read Fetch MsgAttributes as int8 (discovered by @tvoinarovskyi, closes #1689)
  • Portability: stop using typeof in rdkafka_transport.c (#1708, @tbsaunde)
  • Portability: replace use of #pragma once with header guards (#1688, @tbsaunde)
  • mklove: add LIBS in reverse order to maintain dependency order
  • Fix build when python is not available #1358