v0.11.6
v0.11.6 is a maintenance release.
Critical fixes
- The internal timer could wrap in under 8 days on Windows, causing stalls and hangs. Bug introduced in v0.11.5. #1980
- Purge and retry buffers in outbuf queue on connection fail (#1913). Messages could get stuck in internal queues on retry and broker down.
Enhancements
- Enable low latency mode on Windows by using TCP "pipe". Users no longer need to set
socket.blocking.max.ms
to improve latency. (#1930, @LavaSpider) - Added rd_kafka_destroy_flags() to control destroy behaviour. Can be used to force an consumer to terminate without leaving the group or committing final offsets.
Fixes
- Producer: Serve UA queue when transitioning topic from UNKNOWN. Messages could get stuck in UA partition queue on metadata timeout (#1985).
- Fix partial read issue on unix platforms without recvmsg()
- Improve disconnect detection on Windows (#1937)
- Use atomics for refcounts on all platforms with atomics support (#1873)
- Message err was not set for on_ack interceptors on broker reply (#1892)
- Fix consumer_lag to -1 when neither app_offset or commmitted_offset is available (#1911)
- Fix crash: Insert retriable messages on partition queue, not xmit queue (#1965)
- Fix crash: don't enqueue messages for retry when handle is terminating.
- Disconnect regardless of socket.max.fails when partial request times out (#1955)
- Now builds with libressl (#1896, #1901, @secretmike)
- Call poll when flush() is called with a timeout of 0 (#1950)
- Proper locking of set_fetch_state() when OffsetFetch response is outdated
- Destroy unknown and no longer desired partitions (fixes destroy hang)
- Handle FetchResponse for partitions that were removed during fetch (#1948)
- rdkafka_performance: Default the message size to the length of the pattern unless given explicitly (#1899, @ankon)
- Fix timeout reuse in queue serving/polling functions (#1863)
- Fix rd_atomic*_set() to use __atomic or __sync when available
- NuGet: change runtime from win7-.. to more generic win-.. (CLIENTS-1188)
- Fix crash: failed ops enq could be handled by original dest queue callbacks
- Update STATISTICS.md to match code (@ankon, #1936)
- rdkafka_performance: Don't sleep while waiting for delivery reports (#1918, @ankon)
- Remove unnecessary 100ms sleep when broker goes from UP -> DOWN (#1895)
- rdhdrhistogram: Fix incorrect float -> int cast causing havoc on MIPS (@andoma)
- "Message size too large": The receive buffer would grow by x2 (up to the limit) each time a EOS control message was seen. (#1472)
- Added support for system-provided C11 threads, e.g. alpine/musl. This fixes weird behaviour on Alpine (#1998)
- Fix high CPU usage after disconnect from broker while waiting for SASL response (#2032, @stefanseufert)
- Fix dont-destroy-from-rdkafka-thread detection logic to avoid assert when using plugins.
- Fix LTO warnings with gcc 8 (#2038, @Romain-Geissler-1A)