e598c6726d- update to 1.4.0: * Buffered file output is now periodically flushed by a background thread * The MultiprocessRollingFileAppender did not work * Properly prevent undefined behaviour when an appender is deleted without being closed * Prevent abnormal termination on exit when using a static NDC/MDC variable * Support for std::experimental::optional (in the standard library used by gcc 5.4) * Overhead reduction of upto 60% sending logging events to an appender * Statistics on the AsyncAppender's queue length * [Fuzz tests](@ref fuzzing) along with Google OSS-Fuzz * MSYS2/MINGW build errors * thread_local problems in MSYS2/MINGW * A potential 'use after free' fault when using AsyncAppender
devel
Dirk Mueller2025-03-30 10:57:03 +00:00
f0ad08d9ddAccepting request 1127461 from devel:libraries:c_c++Ana Guerrero2023-11-21 20:31:08 +00:00
56363363b8- update to 2.3.0: * Partial support of topic identifiers. Topic identifiers in metadata response available through the new rd_kafka_DescribeTopics function * KIP-117 Add support for AdminAPI DescribeCluster() and DescribeTopics() * Return authorized operations in Describe Responses. * KIP-580: Added Exponential Backoff mechanism for retriable requests with retry.backoff.ms as minimum backoff and retry.backoff.max.ms as the maximum backoff, with 20% jitter (#4422). * Fixed ListConsumerGroupOffsets not fetching offsets for all the topics in a group with Apache Kafka version below 2.4.0. * Add missing destroy that leads to leaking partition structure memory when there are partition leader changes and a stale leader epoch is received (#4429). * Fix a segmentation fault when closing a consumer using the cooperative-sticky assignor before the first assignment * Fix for insufficient buffer allocation when allocating rack information (@wolfchimneyrock, #4449). * Fix for infinite loop of OffsetForLeaderEpoch requests on quick leader changes. (#4433). * Fix for stored offsets not being committed if they lacked the leader epoch (#4442). * Upgrade OpenSSL to v3.0.11 (while building from source) with various security fixes, check the release notes * Fix to ensure permanent errors during offset validation continue being retried and don't cause an offset reset (#4447). * Fix to ensure max.poll.interval.ms is reset when rd_kafka_poll is called with consume_cb (#4431).Dirk Mueller2023-11-18 19:50:39 +00:00
4aabb5cf50- update to 2.1.1: * Avoid duplicate messages when a fetch response is received * in the middle of an offset validation request * Fix segmentation fault when subscribing to a non-existent topic and calling rd_kafka_message_leader_epoch() on the polled rkmessage * Fix a segmentation fault when fetching from follower and the partition lease expires while waiting for the result of a list offsets operation * Fix documentation for the admin request timeout, incorrectly stating -1 for infinite * timeout. That timeout can't be infinite. * Fix CMake pkg-config cURL require and use * pkg-config Requires.private field * Fixes certain cases where polling would not keep the consumer * in the group or make it rejoin it * Fix to the C++ set_leader_epoch method of TopicPartitionImpl, * that wasn't storing the passed value * Duplicate messages can be emitted when a fetch response is received in the middle of an offset validation request. Solved by avoiding a restart from last application offset when offset validation succeeds. * When fetching from follower, if the partition lease expires after 5 minutes, and a list offsets operation was requested to retrieve the earliest or latest offset, it resulted in segmentation fault. This was fixed by allowing threads different from the main one to call the rd_kafka_toppar_set_fetch_state function, given they hold the lock on the rktp. * In v2.1.0, a bug was fixed which caused polling any queue to reset the max.poll.interval.ms.Dirk Mueller2023-05-07 19:02:32 +00:00
271cf5edad- update to 1.6.1: * Fatal idempotent producer errors are now also fatal to the transactional producer. This is a necessary step to maintain data integrity prior to librdkafka supporting KIP-360. Applications should check any transactional API errors for the is_fatal flag and decommission the transactional producer if the flag is set. * The consumer error raised by auto.offset.reset=error now has error-code set to ERR__AUTO_OFFSET_RESET to allow an application to differentiate between auto offset resets and other consumer errors. * Admin API and transactional send_offsets_to_transaction() coordinator requests, such as TxnOffsetCommitRequest, could in rare cases be sent multiple times which could cause a crash. * ssl.ca.location=probe is now enabled by default on Mac OSX since the librdkafka-bundled OpenSSL might not have the same default CA search paths as the system or brew installed OpenSSL. Probing scans all known locations. * Fatal idempotent producer errors are now also fatal to the transactional producer. * The transactional producer could crash if the transaction failed while send_offsets_to_transaction() was called. * Group coordinator requests for transactional send_offsets_to_transaction() calls would leak memory if the underlying request was attempted to be sent after the transaction had failed. * When gradually producing to multiple partitions (resulting in multiple underlying AddPartitionsToTxnRequests) sub-sequent partitions could get stuck in pending state under certain conditions. These pending partitions would not send queued messages to the broker and eventually trigger message timeouts, failing the current transaction. This is now fixed. * Committing an empty transaction (no messages were produced and no offsets were sent) would previously raise a fatal error due to invalid stateDirk Mueller2021-04-26 09:20:06 +00:00
08b41312ec- update to 1.5.3: * Fix a use-after-free crash when certain coordinator requests were retried. * Consumer would not filter out messages for aborted transactions if the messages were compressed (#3020). * Consumer destroy without prior close() could hang in certain cgrp states (@gridaphobe, #3127). * Fix possible null dereference in Message::errstr() (#3140). * The roundrobin partition assignment strategy could get stuck in an endless loop or generate uneven assignments in case the group members had asymmetric subscriptions (e.g., c1 subscribes to t1,t2 while c2 subscribes to t2,t3). (#3159)Dirk Mueller2020-12-22 09:41:00 +00:00
eed88c30e3* Improved broker connection error reporting with more useful information and hints on the cause of the problem. * Consumer: Propagate errors when subscribing to unavailable topics (#1540) * Producer: Add batch.size producer configuration property (#638) * Add topic.metadata.propagation.max.ms to allow newly manually created topics to be propagated throughout the cluster before reporting them as non-existent. This fixes race issues where CreateTopics() is quickly followed by produce(). * Prefer least idle connection for periodic metadata refreshes, et.al., to allow truly idle connections to time out and to avoid load-balancer-killed idle connection errors (#2845) * Added rd_kafka_event_debug_contexts() to get the debug contexts for a debug log line (by @wolfchimneyrock). * Added Test scenarios which define the cluster configuration. * Added MinGW-w64 builds (@ed-alertedh, #2553) * ./configure --enable-XYZ now requires the XYZ check to pass, and --disable-XYZ disables the feature altogether (@benesch) * Added rd_kafka_produceva() which takes an array of produce arguments for situations where the existing rd_kafka_producev() va-arg approach can't be used. * Added rd_kafka_message_broker_id() to see the broker that a message was produced or fetched from, or an error was associated with. * Added RTT/delay simulation to mock brokers. * Subscribing to non-existent and unauthorized topics will now propagate errors RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART and RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED to the application through the standard consumer error (the err field in the message object). * Consumer will no longer trigger auto creation of topics, allow.auto.create.topics=true may be used to re-enable the old deprecated functionality.Dirk Mueller2020-08-31 10:25:08 +00:00
1a487be018Accepting request 828543 from home:cbcoutinho:branches:devel:libraries:c_c++Dirk Mueller2020-08-31 10:23:13 +00:00
52708abf92- update to 1.1.0: * SASL OAUTHBEARER support * In-memory SSL certificates (PEM, DER, PKCS#12) support * Pluggable broker SSL certificate verification callback * ssl.endpoint.identification.algorithm=https (off by default) to validate the broker hostname matches the certificate. Requires OpenSSL >= 1.0.2. * Improved GSSAPI/Kerberos ticket refresh * SSL peer (broker) certificate verification is now enabled by default (disable with enable.ssl.certificate.verification=false) * %{broker.name} is no longer supported in sasl.kerberos.kinit.cmd since kinit refresh is no longer executed per broker, but per client instance. * SASL GSSAPI/Kerberos: Don't run kinit refresh for each broker, just per client instance. * SASL GSSAPI/Kerberos: Changed sasl.kerberos.kinit.cmd to first attempt ticket refresh, then acquire. * SASL: Proper locking on broker name acquisition. * Consumer: max.poll.interval.ms now correctly handles blocking poll calls, allowing a longer poll timeout than the max poll interval. * configure: Fix libzstd static lib detection * rdkafka_performance: Fix for Misleading "All messages delivered!" message - update to version 1.0.1: * Fix consumer stall when broker connection goes down * Fix AdminAPI memory leak when broker does not support request * Update/fix protocol error response codes * Treat ECONNRESET as standard Disconnects - update to version 1.0.0: * This release changes configuration defaults and deprecates a set of configuration properties, make sure to read the Upgrade considerations section from https://github.com/edenhill/librdkafka/releases/tag/v1.0.0 * add support for Idempotent Producer, providing exactly-once
Thomas Bechtold
2019-09-05 12:00:52 +00:00