Release Notes - Kafka - Version 4.2.0
Below is a summary of the JIRA issues addressed in the 4.2.0
release of Kafka. For full documentation of the release, a guide
to get started, and information about the project, see the
Kafka project site.
Note about upgrades: Please carefully review the
upgrade documentation for this release thoroughly before upgrading
your cluster. The upgrade notes discuss any critical information about
incompatibilities and breaking changes, performance changes, and any
other changes that might impact your production deployment of Kafka.
The documentation for the most recent release can be found at
https://kafka.apache.org/documentation.html.
New Feature
[KAFKA-7699] - Improve wall-clock time punctuations
[KAFKA-18786] - Enable returnning supported features from a specific broker
[KAFKA-19237] - add dynamic config remote.log.manager.follower.thread.pool.size
[KAFKA-19254] - Add generic feature level metric
[KAFKA-19467] - Add a metric for controller thread idleness
[KAFKA-19487] - Improve consistency of command-line arguments
[KAFKA-19764] - KIP-1224: Adaptive append.linger.ms for the group coordinator and share coordinator
[KAFKA-19773] - Include push interval in ClientTelemetryReceiver context
[KAFKA-19824] - New ConnectorClientConfigOverridePolicy with allowlist of configurations
Improvement
[KAFKA-8080] - Remove streams_eos_test system test
[KAFKA-8350] - Splitting batches should consider topic-level message size
[KAFKA-9825] - Kafka protocol BNF format should have some way to display tagged fields
[KAFKA-12281] - Cleanup unused org.apache.kafka.streams.errors.BrokerNotFoundException
[KAFKA-12392] - Deprecate '--max-partition-memory-bytes' option in ConsoleProducer
[KAFKA-12569] - Clean up usage of commit flags in StateMachineTask
[KAFKA-14768] - Add latency optimization guidance to KafkaProducer.send()
[KAFKA-14915] - Option to consume multiple partitions that have their data in remote storage for the target offsets.
[KAFKA-15983] - Kafka-acls should return authorization already done if repeating work is issued
[KAFKA-16505] - KIP-1034: Dead letter queue in Kafka Streams
[KAFKA-16913] - Support external schemas in JSONConverter
[KAFKA-17645] - KIP-1052: Enable warmup in producer performance test
[KAFKA-17834] - Improvement the Dockerfile
[KAFKA-17876] - Consider renaming org.apache.kafka.server:type=AssignmentsManager
[KAFKA-18185] - Remove internal.leave.group.on.close flag
[KAFKA-18193] - Refactor Kafka Streams CloseOptions to Fluent API Style
[KAFKA-18328] - Support for Topic Ids in Offset Fetch/Commit APIs (KIP-848)
[KAFKA-18351] - remove `version` tag for docker-compose.yml
[KAFKA-18356] - Explicitly setting up instrumentation for inline mocking (Java 21+)
[KAFKA-18607] - Update jfreechart dependency
[KAFKA-18627] - add allowed modules to JaasUtils
[KAFKA-18778] - Fix the inconsistent lastest supported version in StorageTool.scala and FutureCommand
[KAFKA-18841] - Enable to test docker image locally
[KAFKA-18853] - encourage users to use LogLevelConfig to configure dynamic logger level
[KAFKA-18903] - Use curl + jq in update-cache.sh
[KAFKA-18926] - `KafkaPrincipalBuilder` should extend `KafkaPrincipalSerde`
[KAFKA-19011] - Improve EndToEndLatency Tool with argument parser and message key/header support
[KAFKA-19140] - ConnectAssignor#performAssignment second parameter can be replace from String to ConnectProtocolCompatibility
[KAFKA-19150] - Consider renaming org.apache.kafka.storage.internals.log.RemoteStorageThreadPool metrics
[KAFKA-19174] - Gradle version upgrade 8 -->> 9
[KAFKA-19203] - Replace `ApiError#exception` by `Error#exception` for KafkaAdminClient
[KAFKA-19296] - Revise AsyncKafkaConsumer event wakeup approach
[KAFKA-19305] - Make ClientQuotaImage and TopicImage immutable
[KAFKA-19306] - Migrate LogCompactionTester to tool module
[KAFKA-19324] - org.apache.kafka.common.test.TestUtils should be package-private
[KAFKA-19350] - don't propagate the error caused by CreateTopicPolicy to FatalFaultHandler
[KAFKA-19384] - The passing of BrokerRegistrationRequestTest is a false positive
[KAFKA-19391] - Update the opentelemetry-proto and protobuf
[KAFKA-19400] - Update AddRaftVoterRPC to support controller auto-joining
[KAFKA-19406] - Remove BrokerTopicStats#removeOldFollowerMetrics
[KAFKA-19420] - Don't export SocketServer from ClusterInstance
[KAFKA-19431] - Stronger assignment consistency with subscription for consumer groups
[KAFKA-19432] - Add an ERROR log message if broker.heartbeat.interval.ms is too large
[KAFKA-19435] - Optimize `kafka-consumer-groups.sh` to return the offset info of other partitions even when the leader of some partitions are missing
[KAFKA-19447] - makeFollower and makeLeader should use PartitionRegistration instead of PartitionState
[KAFKA-19451] - Fix flaky test: RemoteIndexCacheTest.testCacheEntryIsDeletedOnRemoval()
[KAFKA-19452] - Fix flaky test: LogRecoveryTest.testHWCheckpointWithFailuresMultipleLogSegments
[KAFKA-19460] - fetch result might have size < fetch.min.bytes even if data is available in replica
[KAFKA-19466] - LogConcurrencyTest should close the log when the test completes
[KAFKA-19482] - Fix flaky test KafkaStreamsTelemetryIntegrationTest.shouldPassMetrics
[KAFKA-19498] - Add include argument to ConsumerPerformance tool
[KAFKA-19500] - kafka-consumer-groups.sh should fail quickly if the partition leader is unavailable
[KAFKA-19511] - Fix flaky test HandlingSourceTopicDeletionIntegrationTest.shouldThrowErrorAfterSourceTopicDeleted
[KAFKA-19512] - add missing MVs in MetadataVersionTest
[KAFKA-19518] - Remove the usage of KafkaMetricsGroup(Class> klass)
[KAFKA-19527] - improve the docs of LogDirDescription for remote stroage
[KAFKA-19533] - correct the docs of "messages" for `kafka-consumer-perf-test.sh` and `kafka-share-consumer-perf-test.sh`
[KAFKA-19535] - add integration tests for DescribeProducersOptions#brokerId
[KAFKA-19537] - StreamsGroupCommand should return exit code
[KAFKA-19544] - Improve `MetadataVersion.fromVersionString()` to take an enableUnstableFeature flag
[KAFKA-19545] - Remove MetadataVersionValidator
[KAFKA-19580] - Upgrade spotbug to 4.9.4
[KAFKA-19589] - Check for ability to skip position validation in application thread when collecting buffered data
[KAFKA-19596] - Log auto topic creation failures more visibly
[KAFKA-19616] - add compression type and level to log_compaction_test.py
[KAFKA-19644] - Enhance the documentation for producer headers
[KAFKA-19645] - add a lower bound to num.replica.fetchers
[KAFKA-19658] - Tweak org.apache.kafka.clients.consumer.OffsetAndMetadata
[KAFKA-19664] - Support building with Java 25 (LTS release)
[KAFKA-19676] - EpochState should override close to avoid throwing IOException
[KAFKA-19681] - Optimize MetadataShell tool find command print warning message intead of throwing exception
[KAFKA-19682] - Improve logging about task readiness
[KAFKA-19684] - Move Gauge#value to MetricValueProvider
[KAFKA-19691] - Add metrics corresponding to consumer rebalance listener metrics
[KAFKA-19692] - improve the docs of "clusterId" for AddRaftVoterOptions and RemoveRaftVoterOptions
[KAFKA-19699] - improve the documentation of `RecordsToDelete`
[KAFKA-19702] - Move MetadataVersionConfigValidator and related test code to metadata module
[KAFKA-19703] - Remove unsupported "upgrade from" versions
[KAFKA-19742] - Acquisition lock timeout renewal in share consumer explicit mode
[KAFKA-19745] - Add support for podman when running system tests
[KAFKA-19747] - Improve handling of failed push telemetry request
[KAFKA-19772] - enhance the documentation for `Node#isFanced`
[KAFKA-19778] - Share Partition Lag Persistence and Retrieval
[KAFKA-19791] - Add Idle Thread Ratio Metric to MetadataLoader
[KAFKA-19793] - Disable topic autocreation for streams consumers.
[KAFKA-19803] - Relax state directory file system restrictions
[KAFKA-19820] - remove the unnecessary copy from AbstractFetch#fetchablePartitions
[KAFKA-19821] - Duplicated batches should be logged
[KAFKA-19822] - Remove all static classes in Field except TaggedFieldsSection
[KAFKA-19829] - Implement group-level initial rebalance delay
[KAFKA-19861] - Optimization of the Murmur2 hash computation
[KAFKA-19876] - Replace the base image since openjdk image is deprecated
[KAFKA-19924] - Ensure deterministic task order by using TreeSet in TaskManager
[KAFKA-19929] - Revisit polling delay for share consume in record-limit mode
[KAFKA-19944] - Share group offset information following topic deletion is untidy
[KAFKA-19946] - Reduce unnecessary work in share session handler
[KAFKA-19966] - Upgrade commons-validator to 1.10.1
Bug
[KAFKA-6333] - java.awt.headless should not be on commandline
[KAFKA-7700] - AbstractConfig does not honor Properties defaults
[KAFKA-8202] - StackOverflowError on producer when splitting batches
[KAFKA-12999] - NPE when accessing RecordHeader.key() concurrently
[KAFKA-14604] - SASL session expiration time will be overflowed when calculation
[KAFKA-17089] - Incorrect JWT parsing in OAuthBearerUnsecuredJws
[KAFKA-17554] - Flaky testFutureCompletionOutsidePoll in ConsumerNetworkClientTest
[KAFKA-17662] - config.providers configuration missing from the docs
[KAFKA-17725] - RecordHeader key() is not thread safe
[KAFKA-18061] - AddRaftVoter responds with error message "NONE" instead of null
[KAFKA-18066] - Misleading/mismatched StreamThread id in logging
[KAFKA-18068] - Fixing typo in ProducerConfig
[KAFKA-18105] - Fix flaky PlaintextAdminIntegrationTest#testElectPreferredLeaders
[KAFKA-18376] - High CPU load when AsyncKafkaConsumer uses a small max poll value
[KAFKA-18471] - Race conditions when accessing RecordHeader data
[KAFKA-18486] - Remove ReplicaManager#becomeLeaderOrFollower
[KAFKA-18509] - Move StateChangeLogger to server-common module
[KAFKA-18600] - Cleanup NetworkClient zk related logging
[KAFKA-18818] - Significant delay in Metadata Update After Admin Client Operations in KRaft Mode
[KAFKA-19012] - Messages ending up on the wrong topic
[KAFKA-19112] - Unifying LIST-Type Configuration Validation and Default Values
[KAFKA-19213] - Kafka java client ignores default properties
[KAFKA-19233] - Members cannot rejoin with epoch=0 for KIP-848
[KAFKA-19259] - Async consumer fetch intermittent delays on console consumer
[KAFKA-19282] - Update quotaTypesEnabled on quota removal in ClientQuotaManager
[KAFKA-19354] - KRaft observer unable to recover after re-bootstrapping to follower
[KAFKA-19357] - AsyncConsumer#close hangs during closing because the commitAsync request never completes due to a missing coordinator
[KAFKA-19371] - When a broker restarts, it should not attempt to create the __remote_log_metadata topic if it already exists.
[KAFKA-19390] - AbstractIndex#resize() does not release old mmap on Linux
[KAFKA-19394] - Failure in ConsumerNetworkThread.initializeResources() can cause hangs on AsyncKafkaConsumer.close()
[KAFKA-19425] - local segment on disk never deleted forever when remote storage initial failed
[KAFKA-19426] - TopicBasedRemoteLogMetadataManager's initial should happen after the broker ready
[KAFKA-19445] - Group coordinator and share coordinator runtime metrics are aliased
[KAFKA-19449] - Unexpected UNREVOKED_PARTITIONS to UNRELEASED_PARTITIONS transition in consumer member reconciliation
[KAFKA-19458] - Successive AlterReplicaLogDirsRequest on a topic partition may leak log segments
[KAFKA-19462] - "fetch.max.bytes" config is not honored when remote + local fetch
[KAFKA-19474] - Wrong placement of WARN log for truncation below HWM
[KAFKA-19479] - at_least_once mode in Kafka Streams silently drops messages when the producer fails with MESSAGE_TOO_LARGE, violating delivery guarantees
[KAFKA-19484] - Tiered Storage Quota Metrics can stop reporting
[KAFKA-19489] - storage tool should check controller.quorum.voters is not set alongside a dynamic quorum flag when formatting
[KAFKA-19493] - Incorrect rate metric with larger window size
[KAFKA-19496] - Failing test: DescribeStreamsGroupTest.testDescribeMultipleStreamsGroupWithMembersAndVerboseOptions()
[KAFKA-19497] - Topic replay code does not handle creation and deletion properly if it occurs in the same batch
[KAFKA-19504] - AdminClient creates and adds second metrics reporter
[KAFKA-19506] - Implement dynamic compression type selection and fallback for client telemetry
[KAFKA-19510] - Kafka Streams does not always release lock when adding or removing threads multiple times
[KAFKA-19522] - LastKnownLeader should only be elected if it is unfenced
[KAFKA-19524] - connect-plugin-path crashes with UnsupportedOperationException on plugins without ServiceLoader manifests
[KAFKA-19539] - Kafka Streams should also purge internal topics based on user commit requests
[KAFKA-19561] - Request Timeout During SASL Reauthentication Due to Missed OP_WRITE interest set
[KAFKA-19564] - Close Consumer in ConsumerPerformance only after metrics displayed
[KAFKA-19571] - Race condition between log segment flush and file deletion causing log dir to go offline
[KAFKA-19578] - Fix flaky RemoteLogManagerTest#testCopyQuota
[KAFKA-19582] - the current assignments shown by ReassignPartitionsCommand should include the log directories
[KAFKA-19605] - Fix the busy loop occurring in the broker observer
[KAFKA-19606] - Anomaly of JMX metrics RequestHandlerAvgIdlePercent in kraft combined mode
[KAFKA-19614] - The records appended to the log are illegal because of an incorrect base offset during TestLinearWriteSpeed
[KAFKA-19617] - ConsumerPerformance#ConsumerPerfRebListener get corrupted value when the number of partitions is increased
[KAFKA-19618] - the `record-size` and `throughput`arguments don't work in TestRaftServer
[KAFKA-19638] - NPE in `Processor#init()` accessing state store
[KAFKA-19668] - processValues() must be declared as value-changing operation
[KAFKA-19678] - Streams open iterator tracking has high contention on metrics lock
[KAFKA-19679] - NoSuchElementException (again) in Kafka Streams iterator metrics
[KAFKA-19690] - Unexpected Fatal error InvalidTxnStateException on Kafka Streams (KIP-890)
[KAFKA-19716] - OOM when loading large uncompacted __consumer_offsets partitions with transactional workload
[KAFKA-19719] - setting --no-initial-controllers flag should not validate kraft version against metadata version
[KAFKA-19720] - Regex subscription should be empty for classic members joining mixed group
[KAFKA-19722] - Missing assigned-partitions metric in new consumer
[KAFKA-19724] - Global stream thread ignores all exceptions
[KAFKA-19737] - Fix PluginUtils#pluginLocations warning log not being printed
[KAFKA-19744] - Restore metrics are calculated incorrectly
[KAFKA-19748] - Memory leak using range scans
[KAFKA-19750] - Address the compileClasspath resolution warnings for the `releaseTarGz` task
[KAFKA-19758] - Weird behavior on Kafka Connect 4.1 class loading
[KAFKA-19760] - RecordTooLargeExceptions in group coordinator when offsets.topic.compression.codec is used
[KAFKA-19775] - Error if an empty topic is created when there is a regex source KS
[KAFKA-19776] - Incorrect leaderId and leaderEpoch logged in Partition#makeFollower
[KAFKA-19781] - Consumer NoOffsetForPartitionException for partitions being revoked
[KAFKA-19813] - Incorrect jitter value in StreamsGroupHeartbeatRequestManager and AbstractHeartbeatRequestManager
[KAFKA-19831] - Failures in the StateUpdater thread may lead to inability to shut down a stream thread
[KAFKA-19848] - Revert KIP-939 API's and Client Code for 4.2
[KAFKA-19857] - CoordinatorExecutorImpl.cancelAll always throws IllegalStateException when there are running tasks
[KAFKA-19862] - Group coordinator loading may fail when there is concurrent compaction
[KAFKA-19875] - Duplicated topic config prevents broker start
[KAFKA-19882] - JMX tags applied to all client metrics, not just client state for KIP-1091
[KAFKA-19888] - Coordinator histogram negative values causing persistent write timeouts and consumer instability in Kafka 4.1.0
[KAFKA-19898] - OOM in Tls12SelectorTest#testGracefulClose
[KAFKA-19899] - Bumping group epoch when member regex subscription changes from non empty to empty
[KAFKA-19930] - GlobalThread fails with NPE trying to use unsupported ProcessingExceptionHandler
[KAFKA-19940] - Reduce the log4j2 cpu usage in PersisterStateManager
[KAFKA-19950] - Remove connectionId from session in ShareSessionCache on session removal
[KAFKA-19951] - switch lz4-java to at.yawk.lz4 version due to CVE
[KAFKA-19953] - Bug releasing acquired records when maintained on offset level
[KAFKA-19954] - Fix overlapping batches when SharePartition reinitalizes
[KAFKA-19955] - Performance regression in assignors
[KAFKA-19957] - Accumulate acquire offsets response for share group
[KAFKA-19959] - Apply NPE fix for oldest-iterator-open-since-ms to other store types
[KAFKA-19960] - Spurious failure to close StateDirectory due to some task directories still locked
[KAFKA-19965] - Fix Flaky ShareConsumerTest# testFetchWithThrottledDeliveryBatchesWithIncreasedDeliveryLimit
[KAFKA-19972] - Bump delivery count on session release for Share Groups
[KAFKA-19974] - Partitions can be assigned to more than one member in the same epoch
[KAFKA-19990] - NPE on handling an AllocateProducerIdsResponse
[KAFKA-19994] - TaskManager may not close all tasks on task timeouts
[KAFKA-19999] - Transaction coordinator livelock caused by invalid producer epoch
[KAFKA-20002] - Reset-by-duration should not hand back task to state-updater
[KAFKA-20023] - Fix kafka-reassign-partitions.sh to handle dead brokers
[KAFKA-20027] - Fix the broken 'quickstart' link on the connector page
[KAFKA-20038] - [CVE-2025-68161] [log4j-core] [2.17.1][Kafka]
[KAFKA-20040] - Race condition on consumer updating positions and unsubscribe when using committed offsets with topic ID
[KAFKA-20046] - streams-scala artifact is compiled with java 17 instead of 11.
[KAFKA-20063] - Docker Build Test hangs with jvm type
[KAFKA-20064] - A race condition in admin client can lead to the result future never being completed
[KAFKA-20069] - Release script cannot update templateData.js
[KAFKA-20076] - Wrong (uppercase) PluginType JSON serialization
[KAFKA-20093] - KAFKA_URL is baked in as an environment variable causing faulty server.properties
[KAFKA-20111] - Describing group configs for pre-4.1 broker with later kafka-configs.sh fails
[KAFKA-20115] - Group coordinator fails to unload metadata when no longer leader or follower
Task
[KAFKA-15186] - AppInfo metrics don't contain the client-id
[KAFKA-15307] - Kafka Streams configuration docs outdated
[KAFKA-18462] - Upgrade RocksDB dependency from 9.7.3 to something newer
[KAFKA-19402] - Typo in EventAccumulator.java
[KAFKA-19446] - TV2 late marker can violate EOS guarantees.
[KAFKA-19490] - Remove usages of distutils in docker scripts
[KAFKA-19503] - Deprecate MX4j support
[KAFKA-19523] - Gracefully handle error while building remoteLogAuxState
[KAFKA-19525] - Refactor TopicBasedRemoteLogMetadataManager to remove unused code
[KAFKA-19530] - RemoteLogManager should record lag stats when remote storage is offline
[KAFKA-19551] - Remove the handling of FatalExitError in RemoteStorageThreadPool
[KAFKA-19573] - Update num.recovery.threads.per.data.dir configs
[KAFKA-19574] - Improve producer and consumer config files
[KAFKA-19579] - Add missing metrics for document tiered storage
[KAFKA-19597] - Stop the RSM after closing the remote-log reader threads to handle requests gracefully
[KAFKA-19599] - Reduce the frequency of ReplicaNotAvailableException thrown to clients when RLMM is not ready
[KAFKA-19604] - Document controller.quorum.auto.join.enable config in upgrade.html
[KAFKA-19734] - Add application-id as a tag to the ClientState JMX metric
[KAFKA-19739] - Upgrade commons-validator to 1.10.0
[KAFKA-19763] - Parallel remote reads causes memory leak in broker
[KAFKA-19769] - [Java 25] few tests are failling (class: clients/org.apache.kafka.common.network.SslTransportLayerTest)
[KAFKA-19771] - Update SpotBugs version and enable Spotbugs Gradle tasks on Java 25
[KAFKA-19784] - Expose Rack ID in MemberDescription
[KAFKA-19792] - Gradle build fails after Swagger patch version update
[KAFKA-19795] - Mark the minOneMessage as false when delayedRemoteFetch is present in the first partition
[KAFKA-19855] - Fix typo in README.md file
[KAFKA-19864] - Handle TimeoutException from initializeIfNeeded() in StateUpdater Code
[KAFKA-19903] - Add integration tests for handling throttled delivery records for Share Group
[KAFKA-19922] - Update docs for start-offset in share group
Test
[KAFKA-16024] - SaslPlaintextConsumerTest#testCoordinatorFailover is flaky
[KAFKA-18475] - Flaky PlaintextProducerSendTest testCloseWithZeroTimeoutFromCallerThread
[KAFKA-18834] - Fix LoggingResourceTest#testSetLevelDefaultScope
[KAFKA-18973] - Review MetadataSchemaCheckerToolTest.testVerifyEvolutionGit requiring git project
[KAFKA-19239] - Rewrite IntegrationTestUtils by java
[KAFKA-19299] - Fix flaky RemoteIndexCacheTest#testCacheEntryIsDeletedOnRemoval
[KAFKA-19505] - ReplicaManagerTest#testMultipleRemoteFetchesInOneFetchRequest fails due to random topic-id in mocked log
[KAFKA-19592] - testGenerateAssignmentWithBootstrapServer uses wrong JSON format
[KAFKA-19894] - Reintroduce SaslPlainSslEndToEndAuthorizationTest
Sub-task
[KAFKA-12506] - Expand AdjustStreamThreadCountTest
[KAFKA-14895] - Move AddPartitionsToTxnManager files to java
[KAFKA-15283] - Client support for OffsetFetch and OffsetCommit with topic ID
[KAFKA-16717] - Add AdminClient.alterShareGroupOffsets
[KAFKA-16926] - Optimize BeginQuorumEpoch heartbeat
[KAFKA-17108] - Expose EarliestPendingUpload offset spec in ListOffsets API
[KAFKA-17344] - Add Unit tests for empty follower fetch scenarios
[KAFKA-17541] - Improve handling of delivery count
[KAFKA-17853] - Console share consumer is not terminated immediately
[KAFKA-18220] - Refactor AsyncConsumerMetrics so they are appropriate for share consumers
[KAFKA-18265] - Optimizing SharePartition locking to improve fetch speed
[KAFKA-18699] - Migrate suitable classes to records in metadata
[KAFKA-18708] - Move ScramPublisher to metadata module
[KAFKA-18710] - Move DynamicClientQuotaPublisher to metadata module
[KAFKA-18711] - Move DelegationTokenPublisher to metadata module
[KAFKA-18794] - Flaky test: KafkaShareConsumerTest.testVerifyFetchAndCloseImplicit
[KAFKA-18884] - Move TransactionMetadata to transaction-coordinator module
[KAFKA-19020] - Handle strict max fetch records in share fetch
[KAFKA-19078] - Implement automatic controller addition to cluster metadata partition
[KAFKA-19186] - Mark OffsetCommit and OffsetFetch APIs as stable
[KAFKA-19301] - Move PartitionListener, AlterPartitionListener, AssignmentState, PartitionState, and PendingPartitionChange to to server module
[KAFKA-19315] - Move ControllerMutationQuotaManager to server module
[KAFKA-19340] - Move DelayedRemoteFetch to the storage module
[KAFKA-19345] - Use ShareFetchUtils mock for DelayedShareFetchTest tests
[KAFKA-19362] - Enhance share group assignor for homogeneous subscription type
[KAFKA-19363] - Enhance share group assignor for heterogeneous subscription type
[KAFKA-19364] - Production-ready documentation
[KAFKA-19380] - Update streams/developer-guide/app-reset-tool.html
[KAFKA-19416] - Reduce running time of ShareConsumerTest
[KAFKA-19436] - Acquisition lock timeout can't find some offsets to release
[KAFKA-19437] - Review incidence of null metadata image in share coordinator
[KAFKA-19440] - Admin.alterShareGroupOffsets doesn't handle exceptions correctly
[KAFKA-19450] - ShareConsumerPerformance does not handle exceptions from consumeMessagesForSingleShareConsumer
[KAFKA-19454] - Share group delete should be resilient to metadata image issues in group coordinator.
[KAFKA-19455] - Make unknown_topic_or_partition error retriable by the persister state manager.
[KAFKA-19456] - State and leader epoch should only be used for validation and not be updated in share coordinator write state RPC.
[KAFKA-19457] - Revisit the threshold to retry initialize share state RPC in group coordinator.
[KAFKA-19459] - List internal topics for the user
[KAFKA-19461] - Add share group admin integration tests to PlaintextAdminIntegrationTest
[KAFKA-19463] - nextFetchOffset does not take ongoing state transition into account
[KAFKA-19464] - remove findNextFetchOffset.set(true) from acknowledge and release acquired records functionality
[KAFKA-19468] - Share group epoch increments on every heartbeat if subscribed topics removed
[KAFKA-19471] - Enable acknowledgement for a record which could not be deserialized
[KAFKA-19476] - Improve state transition handling in SharePartition
[KAFKA-19477] - Sticky Assignor JMH Benchmark
[KAFKA-19485] - Acknowledgements should not be sent on initial epoch of ShareFetch
[KAFKA-19499] - Correct the logger name in PersisterStateManager
[KAFKA-19531] - Add an end-to-end integration test for the DLQ feature
[KAFKA-19555] - Restrict records acquisition post max inflight records
[KAFKA-19559] - ShareConsumer.close() does not remove all sensors.
[KAFKA-19567] - Purgatory should clear up after share consumers are stopped
[KAFKA-19598] - Consistency of command-line arguments for kafka-producer-perf-test.sh
[KAFKA-19609] - Move TransactionLogTest to transaction-coordinator module
[KAFKA-19623] - Consistency of command-line arguments for console producer/consumer
[KAFKA-19624] - Consistency of command-line arguments for consumer performance tests
[KAFKA-19625] - Consistency of command-line arguments for verifiable producer/consumer
[KAFKA-19626] - Consistency of command-line arguments for remaining CLI tools
[KAFKA-19630] - LSO movement archives only the first available batch not all the ones prior to the new LSO
[KAFKA-19632] - Handle overlap batch alignment on partition reassignment
[KAFKA-19635] - Update upgrade.html with the changes in Apache Kafka 4.2
[KAFKA-19653] - Improve metavariable names for verifiable producer/consumer
[KAFKA-19662] - Support resetting offsets in kafka-share-groups.sh for topics which are not currently subscribed
[KAFKA-19667] - Close ShareConsumer in ShareConsumerPerformance only after metrics displayed
[KAFKA-19693] - Introduce PersisterBatch in SharePartition
[KAFKA-19695] - Last redundant offset calculation to take deleted share partitions into account.
[KAFKA-19698] - Streams | Fix order of arguments to assertEquals in unit test
[KAFKA-19721] - Update streams documentation with KIP-1147 changes
[KAFKA-19725] - Deprecate --property and replace with --reader-property in console producer
[KAFKA-19733] - Clients | Fix order of arguments to assertEquals()
[KAFKA-19757] - Mark KIP-932 interfaces as stable for GA release
[KAFKA-19767] - Improve handling of long processing times
[KAFKA-19789] - Handle situations where broker responses appear logically incorrect
[KAFKA-19796] - Introduce computations for inFlightTerminalRecords
[KAFKA-19802] - Update ShareGroupCommand to use share partition lag information
[KAFKA-19808] - Handle batch alignment when share partition is at capacity
[KAFKA-19814] - Protocol schema and public API changes
[KAFKA-19815] - Implementation of ShareConsumer.acquisitionLockTimeoutMs() method
[KAFKA-19823] - PartitionMaxBytesStrategy bug when request bytes is lesser than acquired topic partitions
[KAFKA-19825] - KIP-1224: Add batch-linger-time and batch-flush-time metrics
[KAFKA-19826] - KIP-1224: Implement adaptive append.linger.ms for the group coordinator and share coordinator
[KAFKA-19827] - Call acknowledgement commit callback at end of waiting calls
[KAFKA-19840] - Flaky test ShareConsumerTest. testShareGroupMaxSizeConfigExceeded
[KAFKA-19844] - Modification of share fetch to accommodate piggybacked renewals.
[KAFKA-19845] - Share consumer changes to support renew ack.
[KAFKA-19846] - Fix ShareFetch RPC doesn't allow '/' and '+' in memberId field
[KAFKA-19859] - Bug: Start offset moved incorrectly on receiving acknowledgements for offset post LSO movement
[KAFKA-19860] - Implement integration tests for share group lag
[KAFKA-19865] - Document queues metrics changes in ops.html
[KAFKA-19868] - Add client id to share consumers in ShareConsumerPerformance
[KAFKA-19892] - Acq lock timeout field in share ack response
[KAFKA-19896] - Use MockTime::sleep instead of retrying in ShareConsumeRequestManagerTest.
[KAFKA-19900] - Fix the documentation for remove controller
[KAFKA-19928] - Implement retry mechanism with backoff in NetworkPartitionMetadataClient
[KAFKA-19945] - StreamsGroupHearbeat response should always set the status
[KAFKA-19977] - Write a documentation section on the new rebalance protocol
[KAFKA-19978] - Don't enter running state as long as group is not ready
[KAFKA-19985] - Document streams groups metrics changes in ops.html
[KAFKA-20052] - Client renew issue when acknowledgements sent for deleted topic partition