Release Notes - Kafka - Version 3.9.0

Below is a summary of the JIRA issues addressed in the 3.9.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-15132] - Implement disable & re-enablement for Tiered Storage
  • [KAFKA-16228] - Add remote log metadata flag to the dump log tool
  • Improvement

  • [KAFKA-7339] - Migrate from JUnit 4 to JUnit 5
  • [KAFKA-7438] - Replace EasyMock and PowerMock with Mockito
  • [KAFKA-10787] - Introduce an import order in Java sources
  • [KAFKA-10816] - Connect REST API should have a resource that can be used as a readiness probe
  • [KAFKA-14094] - KIP-853: KRaft controller membership changes
  • [KAFKA-15265] - Remote copy/fetch quotas for tiered storage.
  • [KAFKA-15406] - Add the ForwardingManager metrics from KIP-938
  • [KAFKA-15773] - Group protocol configuration should be validated
  • [KAFKA-15857] - Introduce LocalLogStartOffset and TieredOffset in OffsetSpec.
  • [KAFKA-16448] - Add Kafka Streams exception handler for exceptions occuring during processing (KIP-1033)
  • [KAFKA-16629] - add broker-related tests to ConfigCommandIntegrationTest
  • [KAFKA-16650] - add integration test for Admin#abortTransaction
  • [KAFKA-16652] - add unit test for ClusterTemplate offering zero ClusterConfig
  • [KAFKA-16666] - Migrate `TransactionLogMessageFormatter`, GroupMetadataMessageFormatter` and `OffsetsMessageFormatter`to tools module
  • [KAFKA-16669] - Remove extra collection copy when generating DescribeAclsResource
  • [KAFKA-16781] - Expose advertised.listeners in controller node
  • [KAFKA-16791] - Add thread detection to ClusterTestExtensions
  • [KAFKA-16879] - SystemTime should use singleton mode
  • [KAFKA-16884] - Refactor RemoteLogManagerConfig with AbstractConfig
  • [KAFKA-16885] - Consider renaming RemoteLogManagerConfig#enableRemoteStorageSystem to RemoteLogManagerConfig#isRemoteStorageSystemEnabled
  • [KAFKA-16897] - Move OffsetIndexTest and OffsetMapTest to storage module
  • [KAFKA-16898] - move TimeIndexTest and TransactionIndexTest to storage module
  • [KAFKA-16909] - Refactor GroupCoordinatorConfig with AbstractConfig
  • [KAFKA-16917] - DescribeTopicsResult should use mutable map in order to keep compatibility
  • [KAFKA-16975] - The error message of creating `__cluster_metadata` should NOT be "Authorization failed"
  • [KAFKA-16989] - Use StringBuilder instead of string concatenation
  • [KAFKA-17021] - Migrate AclCommandTest to new test infra
  • [KAFKA-17022] - Fix error-prone in KafkaApis#handleFetchRequest
  • [KAFKA-17032] - NioEchoServer should generate meaningful id instead of incremential number
  • [KAFKA-17034] - Tweak some descriptions in `FeatureUpdate`
  • [KAFKA-17042] - the migration docs should remind users to set "broker.id.generation.enable" when adding broker.id
  • [KAFKA-17046] - Upgrade netty version to 4.1.111.Final
  • [KAFKA-17051] - ApiKeys#toHtml should exclude the APIs having unstable latest version
  • [KAFKA-17059] - Remove `dynamicConfigOverride` from KafkaConfig
  • [KAFKA-17060] - Rename LegacyKafkaConsumer to ClassicKafkaConsumer
  • [KAFKA-17061] - KafkaController takes long time to connect to newly added broker after registration on large cluster
  • [KAFKA-17073] - Deprecate ReplicaVerificationTool in 3.9
  • [KAFKA-17081] - Tweak GroupCoordinatorConfig: re-introduce local attributes and validation
  • [KAFKA-17082] - Replace kafka.utils.LogCaptureAppender with org.apache.kafka.common.utils.LogCaptureAppender
  • [KAFKA-17090] - Add documentation to CreateTopicsResult#config to remind users that both "type" and "document" are null
  • [KAFKA-17095] - Fix the typo: CreateableTopicConfig -> CreatableTopicConfig
  • [KAFKA-17118] - Remove StorageTool#buildMetadataProperties
  • [KAFKA-17122] - Change the type of `clusterId` from `UUID` to `String`
  • [KAFKA-17124] - Fix flaky DumpLogSegmentsTest#testDumpRemoteLogMetadataNonZeroStartingOffset
  • [KAFKA-17141] - "DescribeTopicPartitions API is not supported" warning message confuses users
  • [KAFKA-17153] - KafkaMetricsGroup#newGauge should accept functional interface instead of `com.yammer.metrics.core.Gague`
  • [KAFKA-17160] - Always import `mockito-inline` if the mockito version is 4.x
  • [KAFKA-17177] - reviewers.py should grep "authors" to offer more candidates of reviewers information
  • [KAFKA-17179] - Don't add `integration` tag when using `ClusterTestExtensions`
  • [KAFKA-17279] - Handle retriable errors from offset fetches in ConsumerCoordinator
  • [KAFKA-17315] - Fix the behavior of delegation tokens that expire immediately upon creation in KRaft mode
  • [KAFKA-17412] - Doc the different behavior of `unclean.leader.election.enable` in KRaft
  • Bug

  • [KAFKA-3346] - Rename "Mode" to "SslMode"
  • [KAFKA-4374] - Improve Response Errors Logging
  • [KAFKA-10190] - Replication throttling configs cannot be set at entity-default
  • [KAFKA-14401] - Connector/Tasks reading offsets can get stuck if underneath WorkThread dies
  • [KAFKA-15156] - Update cipherInformation correctly in DefaultChannelMetadataRegistry
  • [KAFKA-15838] - [Connect] ExtractField and InsertField NULL Values are replaced by default value even in NULLABLE fields
  • [KAFKA-16076] - RestClient Interrupting the thread in case of InterruptedException
  • [KAFKA-16105] - Reassignment of tiered topics is failing due to RemoteStorageException
  • [KAFKA-16254] - Allow MM2 to fully disable offset sync feature
  • [KAFKA-16345] - Optionally allow urlencoding clientId and clientSecret in authorization header
  • [KAFKA-16468] - Listener not found error in SendRPCsToBrokersEvent
  • [KAFKA-16557] - Fix OffsetFetchRequestState.toString()
  • [KAFKA-16558] - Implement HeartbeatRequestState.toStringBase()
  • [KAFKA-16574] - The metrics of LogCleaner disappear after reconfiguration
  • [KAFKA-16584] - Make log processing summary configurable or debug
  • [KAFKA-16667] - KRaftMigrationDriver gets stuck after successive failovers
  • [KAFKA-16684] - FetchResponse#responseData could return incorrect data
  • [KAFKA-16765] - NioEchoServer leaks accepted SocketChannel instances due to race condition
  • [KAFKA-16807] - DescribeLogDirsResponseData#results#topics have unexpected topics having empty partitions
  • [KAFKA-16819] - CoordinatorRequestManager seems to return 0ms during the coordinator discovery
  • [KAFKA-16858] - Flatten SMT throws NPE
  • [KAFKA-16895] - RemoteCopyLagSegments metric taking active segment into account
  • [KAFKA-16916] - ClientAuthenticationFailureTest.testAdminClientWithInvalidCredentials will run forever
  • [KAFKA-16924] - No log output when running kafka
  • [KAFKA-16938] - non-dynamic props gets corrupted due to circular reference between DynamicBrokerConfig and DynamicConfig
  • [KAFKA-16949] - System test test_dynamic_logging in connect_distributed_test is failing
  • [KAFKA-16955] - ConcurrentModification exception thrown by KafkaStream threadState access
  • [KAFKA-16965] - Add a "root cause" exception as a nested exception to TimeoutException for Producer
  • [KAFKA-16967] - NioEchoServer fails to register connection and causes flaky failure
  • [KAFKA-16970] - Fix hash implementation of `ScramCredentialValue`, `ScramCredentialData`, and `ContextualRecord`
  • [KAFKA-16971] - Fix the incorrect format string in QuorumConfigs#parseBootstrapServer
  • [KAFKA-16984] - New consumer should not complete leave operation until it gets a response
  • [KAFKA-17007] - Fix SourceAndTarget#equal
  • [KAFKA-17011] - SupportedFeatures.MinVersion incorrectly blocks v0
  • [KAFKA-17013] - RequestManager#ConnectionState#toString() should use %s
  • [KAFKA-17016] - Align the behavior of GaugeWrapper and MeterWrapper
  • [KAFKA-17017] - AsyncConsumer#unsubscribe does not clean the assigned partitions
  • [KAFKA-17052] - Downgrade ShadowJavaPlugin to 8.1.3 to avoid publishing classifier bug
  • [KAFKA-17062] - RemoteLogManager - RemoteStorageException causes data loss
  • [KAFKA-17077] - the node.id is inconsistent to broker.id when "broker.id.generation.enable=true"
  • [KAFKA-17102] - FetchRequest#forgottenTopics would return incorrect data
  • [KAFKA-17104] - InvalidMessageCrcRecordsPerSec is not updated in validating LegacyRecord
  • [KAFKA-17105] - Unnecessary connector restarts after being newly created
  • [KAFKA-17121] - junit-platform.properties files in published artifacts pollute the test classpath of consumers
  • [KAFKA-17148] - Kafka storage tool prints MetaPropertiesEnsemble
  • [KAFKA-17168] - The logPrefix of RemoteLogReader/RemoteStorageThreadPool is not propagated correctly
  • [KAFKA-17190] - AssignmentsManager gets stuck retrying on deleted topics
  • [KAFKA-17192] - MirrorMaker2 worker config does not pass config.providers value to connectors
  • [KAFKA-17195] - transaction-coordinator:test failing with junit error
  • [KAFKA-17214] - Add 3.8.0 Streams and Core to system tests
  • [KAFKA-17223] - Retrying the call after encoutering UnsupportedVersionException will cause ConcurrentModificationException
  • [KAFKA-17227] - Apache Kafka 3.8.0 /tmp exec permission
  • [KAFKA-17232] - MirrorCheckpointConnector does not generate task configs if initial consumer group load times out
  • [KAFKA-17235] - system test test_performance_service.py failed
  • [KAFKA-17242] - MirrorCheckpointTask prints spurious timeout for starting checkpoint and offset sync stores
  • [KAFKA-17310] - locking the offline dir can destroy the broker exceptionally
  • [KAFKA-17335] - Lack of default for URL encoding configuration for OAuth causes NPE
  • [KAFKA-17360] - local log retention ms/bytes "-2" is not treated correctly
  • [KAFKA-17434] - upgrade_test.py tests impossible upgrade scenarios
  • [KAFKA-17492] - skip features with minVersion of 0 instead of replacing 0 with 1 when BrokerRegistrationRequest < 4
  • [KAFKA-17506] - KRaftMigrationDriver initialization race condition
  • [KAFKA-17527] - Kafka Streams fails with NPE for missing RecordContext
  • [KAFKA-17543] - Enforce that broker ids are specified when migrating to KRaft
  • [KAFKA-17584] - Fix incorrect synonym handling for dynamic log configurations
  • [KAFKA-17604] - Describe quorum output missing added voters endpoints
  • [KAFKA-17608] - KRaft controller crashes when leader is removed from quorum
  • [KAFKA-17636] - The StorageTool does not create SCRAM credentials when formatting disk
  • [KAFKA-17714] - Fix StorageToolTest.scala to compile under Scala 2.12
  • [KAFKA-17731] - Kafka consumer client sometimes elapses wait time for terminating telemetry push
  • [KAFKA-17735] - release.py must not use home.apache.org
  • [KAFKA-17749] - Throttle metrics have changed name
  • [KAFKA-17751] - Contoller high CPU when formatted with --initial-controllers
  • [KAFKA-17753] - Update protobuf and commons-io dependencies
  • [KAFKA-17788] - During ZK migration, always include control.plane.listener.name in advertisedBrokerListeners
  • [KAFKA-17790] - Document that control.plane.listener should be removed before ZK migration is finished
  • [KAFKA-17794] - kafka-storage format must require KIP-853 flags unless controller.quorum.voters is set
  • [KAFKA-17868] - Do not ignore --feature flag in kafka-storage.sh
  • Task

  • [KAFKA-12670] - KRaft support for unclean.leader.election.enable
  • [KAFKA-12708] - Rewrite org.apache.kafka.test.Microbenchmarks by JMH
  • [KAFKA-14426] - Add documentation for Kraft limtations that have open KIPs
  • [KAFKA-14569] - Migrate EmbeddedKafkaCluster used by Connect integration tests from EmbeddedZookeeper to KRaft
  • [KAFKA-15469] - Document built-in configuration providers
  • [KAFKA-15713] - KRaft support in AclCommandTest
  • [KAFKA-15746] - KRaft support in ControllerMutationQuotaTest
  • [KAFKA-15751] - KRaft support in BaseAdminIntegrationTest
  • [KAFKA-15752] - KRaft support in SaslSslAdminIntegrationTest
  • [KAFKA-16068] - Use TestPlugins in ConnectorValidationIntegrationTest to silence plugin scanning errors
  • [KAFKA-16192] - Introduce usage of flexible records to coordinators
  • [KAFKA-16390] - consume_bench_test.py failed using AsyncKafkaConsumer
  • [KAFKA-16643] - Add ModifierOrder checkstyle rule
  • [KAFKA-16809] - Run javadoc build in CI
  • [KAFKA-16859] - Cleanup check if tiered storage is enabled
  • [KAFKA-16862] - Refactor ConsumerTaskTest to be deterministic and avoid tight loops
  • [KAFKA-16865] - Admin.describeTopics behavior change after KIP-966
  • [KAFKA-16880] - Update equals and hashcode for two new *threadPool attributes
  • [KAFKA-16976] - Improve the dynamic config handling for RemoteLogManagerConfig when a broker is restarted.
  • [KAFKA-16998] - Fix warnings in our Github actions
  • [KAFKA-17097] - Add replace.null.with.default configuration to ValueToKey and ReplaceField (KIP-1040)
  • [KAFKA-17328] - Update Release.py script to point to dist.apache.org/dev
  • [KAFKA-17457] - Raise minimum MetadataVersion for ZK migration to 3.6
  • [KAFKA-17489] - IllegalStateException if failed task is removed from state updater
  • Test

  • [KAFKA-15793] - Flaky test ZkMigrationIntegrationTest.testMigrateTopicDeletions
  • [KAFKA-15999] - Migrate HeartbeatRequestManagerTest away from ConsumerTestBuilder
  • [KAFKA-16000] - Migrate MembershipManagerImplTest away from ConsumerTestBuilder
  • [KAFKA-16001] - Migrate ConsumerNetworkThreadTest away from ConsumerTestBuilder
  • [KAFKA-16219] - Tsl13SelectorTest::testExpireClosedConnectionWithPendingReceives hangs infinitely
  • [KAFKA-16383] - fix flaky test IdentityReplicationIntegrationTest.testReplicateFromLatest()
  • [KAFKA-16547] - add test for DescribeConfigsOptions#includeDocumentation
  • [KAFKA-16550] - add integration test for LogDirsCommand
  • [KAFKA-16551] - add integration test for ClusterTool
  • [KAFKA-16661] - add a lower `log.initial.task.delay.ms` value to integration test framework
  • [KAFKA-16672] - Fix flaky DedicatedMirrorIntegrationTest.testMultiNodeCluster
  • [KAFKA-16785] - Migrate TopicBasedRemoteLogMetadataManagerRestartTest to new test infra
  • [KAFKA-16882] - Migrate RemoteLogSegmentLifecycleTest to new test infra
  • [KAFKA-16901] - add unit tests for ConsumerRecords#records(String)
  • [KAFKA-16912] - Migrate ConsumerNetworkThreadTest.testPollResultTimer() to NetworkClientDelegateTest
  • [KAFKA-16920] - Flaky test testControlledShutdown() - kafka.server.BrokerLifecycleManagerTest
  • [KAFKA-16922] - add unit test for NewTopic
  • [KAFKA-16939] - Revisit ConfigCommandIntegrationTest
  • [KAFKA-16958] - add `STRICT_STUBS` to `EndToEndLatencyTest`, `OffsetCommitCallbackInvokerTest`, `ProducerPerformanceTest`, and `TopologyTest`
  • [KAFKA-16990] - Unrecognised flag passed to kafka-storage.sh in system test
  • [KAFKA-16991] - Flaky Test org.apache.kafka.streams.integration.PurgeRepartitionTopicIntegrationTest.shouldRestoreState
  • [KAFKA-17000] - Occasional AuthorizerTest thread leak
  • [KAFKA-17009] - Add unit test to query nonexistent replica by describeReplicaLogDirs
  • [KAFKA-17096] - Fix kafka_log4j_appender.py
  • [KAFKA-17133] - add unit test to make sure `ConsumerRecords#recoreds` returns immutable object
  • [KAFKA-17135] - Add unit test for `ProducerStateManager#readSnapshot` and `ProducerStateManager#writeSnapshot`
  • [KAFKA-17149] - Move ProducerStateManagerTest to storage module
  • [KAFKA-17172] - add `@Tag("integration")` to `ClusterTest`, `ClusterTemplate`, and `ClusterTests`
  • [KAFKA-17194] - Don't create cluster for MetadataQuorumCommandTest#testCommandConfig
  • [KAFKA-17202] - EosIntegrationTest.verifyChangelogMaxRecordOffsetMatchesCheckpointedOffset leaks consumers
  • [KAFKA-17204] - KafkaStreamsCloseOptionsIntegrationTest.before leaks AdminClient
  • [KAFKA-17309] - Fix flaky testCallFailWithUnsupportedVersionExceptionDoesNotHaveConcurrentModificationException
  • [KAFKA-17422] - Improve the test time for testDeletionSkippedForSegmentsBeingCopied
  • [KAFKA-17454] - Fix failed transactions_mixed_versions_test.py when running with 3.2
  • [KAFKA-17458] - Add 3.8 to transactions_upgrade_test.py, transactions_mixed_versions_test.py, and kraft_upgrade_test.py
  • [KAFKA-17459] - Stabilize reassign_partitions_test.py
  • [KAFKA-17497] - Add e2e for zk migration with old controller
  • Sub-task

  • [KAFKA-12572] - Add import ordering checkstyle rule and configure an automatic formatter
  • [KAFKA-14132] - Remaining PowerMock to Mockito tests
  • [KAFKA-14133] - Remaining EasyMock to Mockito tests
  • [KAFKA-15623] - Migrate remaining tests in streams module to JUnit 5
  • [KAFKA-16154] - Make broker changes to return an offset for LATEST_TIERED_TIMESTAMP
  • [KAFKA-16223] - Replace EasyMock and PowerMock with Mockito for KafkaConfigBackingStoreTest
  • [KAFKA-16480] - ListOffsets change should have an associated API/IBP version update
  • [KAFKA-16518] - Storage tool changes for KIP-853
  • [KAFKA-16520] - Changes to DescribeQuorum response
  • [KAFKA-16521] - kafka-metadata-quorum describe changes for KIP-853
  • [KAFKA-16522] - Admin client changes for adding and removing voters
  • [KAFKA-16523] - kafka-metadata-quorum add voter and remove voter changes
  • [KAFKA-16527] - Update to existing KRaft RPCs and request handling
  • [KAFKA-16529] - Response handling and request sending for KRaft RPCs
  • [KAFKA-16531] - Fix check-quorum calculation to not assume that the leader is in the voter set
  • [KAFKA-16532] - Support for first leader bootstrapping the voter set
  • [KAFKA-16533] - UpdateVoter RPC and request handling
  • [KAFKA-16534] - Sending UpdateVoter request and response handling
  • [KAFKA-16535] - AddVoter RPC and request handling
  • [KAFKA-16536] - Use BeginQuorumEpoch as the leader's heartbeat
  • [KAFKA-16537] - RemoveVoter RPC and request handling
  • [KAFKA-16581] - Implement KafkaRaftClient unittest for membership change
  • [KAFKA-16673] - Optimize toTopicPartitions with ConsumerProtocolSubscription
  • [KAFKA-16713] - Add new RPC definitions
  • [KAFKA-16721] - Add exceptions for the new error codes
  • [KAFKA-16724] - Add new options for kafka-producer-perf-test.sh
  • [KAFKA-16747] - Implement share sessions and context
  • [KAFKA-16751] - Implement release acquired records in SharePartitionManager
  • [KAFKA-16754] - Implement release acquired records functionality in SharePartition
  • [KAFKA-16755] - Implement lock timeout functionality in SharePartition
  • [KAFKA-16772] - Introduce a type for kraft.version
  • [KAFKA-16803] - Upgrade to a version of ShadowJavaPlugin which doesn't use ConfigureUtil
  • [KAFKA-16806] - Explicitly declare JUnit dependencies for all test modules
  • [KAFKA-16822] - Abstract consumer group in coordinator to share functionality with share group
  • [KAFKA-16842] - Fix KafkaConfig validation and support unknown voters
  • [KAFKA-16850] - KRaft - Add v2 of TopicRecord
  • [KAFKA-16851] - Add remote.log.disable.policy
  • [KAFKA-16855] - KRaft - Wire replaying a TopicRecord
  • [KAFKA-16878] - Remove powermock and easymock from code base
  • [KAFKA-16887] - document remote copy/fetch quotas metrics
  • [KAFKA-16914] - Add Share Group dynamic and broker configs
  • [KAFKA-16915] - Update leader change message
  • [KAFKA-16921] - Migrate all junit 4 code to junit 5 for connect module
  • [KAFKA-16927] - Handle expanding leader endpoints
  • [KAFKA-16944] - Range assignor doesn't co-partition with stickiness
  • [KAFKA-16953] - Properly implement the sending of DescribeQuorumResponse
  • [KAFKA-16957] - Enable KafkaConsumerTest#configurableObjectsShouldSeeGeneratedClientId to work with CLASSIC and CONSUMER
  • [KAFKA-16963] - System tests for adding and removing voters
  • [KAFKA-16972] - Move `BrokerTopicStats` and `BrokerTopicMetrics` to `org.apache.kafka.storage.log.metrics` (storage module)
  • [KAFKA-16973] - Fix caught-up condition
  • [KAFKA-17003] - Implement SharePartitionManager close functionality
  • [KAFKA-17004] - MINOR: Remove extra synchronized blocks in SharePartitionManager
  • [KAFKA-17012] - Enable testMeasureCommitSyncDuration, testMeasureCommittedDurationOnFailure, testInvalidGroupMetadata, testMeasureCommittedDuration, testOffsetsForTimesTimeout, testBeginningOffsetsTimeout and testEndOffsetsTimeout for AsyncConsumer
  • [KAFKA-17018] - Metadata version 3.9 should return Fetch version 17
  • [KAFKA-17026] - Implement updateCacheAndOffsets functionality on LSO movement
  • [KAFKA-17028] - FindCoordinator v6 initial implementation
  • [KAFKA-17031] - Make RLM configurations public and fix default handling
  • [KAFKA-17047] - Refactor Consumer group and shared classes with Share to modern package
  • [KAFKA-17048] - Document how to use KIP-853
  • [KAFKA-17055] - Use random replica ids in KafkaRaftClientTest and KafkaRaftClientSnapshotTest
  • [KAFKA-17058] - Extend CoordinatorRuntime to support non-atomic writes
  • [KAFKA-17067] - Fix the transition to CandidateState
  • [KAFKA-17069] - Remote copy throttle metrics
  • [KAFKA-17071] - SharePartition - Add more unit tests
  • [KAFKA-17092] - Revisit `KafkaConsumerTest#testBeginningOffsetsTimeout` for AsyncConsumer
  • [KAFKA-17106] - Enable KafkaConsumerTest#testFetchProgressWithMissingPartitionPosition for AsyncConsumer
  • [KAFKA-17110] - Enable valid test case in KafkaConsumerTest for AsyncKafkaConsumer
  • [KAFKA-17129] - Revisit FindCoordinatorResponse in KafkaConsumerTest
  • [KAFKA-17132] - Revisit testMissingOffsetNoResetPolicy for AsyncConsumer
  • [KAFKA-17144] - Retract v6 of ListGroups RPC added in error
  • [KAFKA-17152] - Make sure zk session tracker gets down when closing embedded zk
  • [KAFKA-17159] - Make sure kafka-cluster-test-kit-executor get down when closing KafkaClusterTestKit
  • [KAFKA-17163] - Revisit testSubscriptionOnInvalidTopic and testPollAuthenticationFailure for AsyncKafkaConsumer
  • [KAFKA-17169] - Add an EndpointsTest suite that test all of the public methods
  • [KAFKA-17176] - Move FileLock to server-common module
  • [KAFKA-17205] - Allow topic config validation in controller level in KRaft mode
  • [KAFKA-17210] - Broker fixes for smooth concurrent fetches on share partition
  • [KAFKA-17236] - local log should be deleted when remote copy disabled and no remote logs
  • [KAFKA-17238] - Move VoterSet and ReplicaKey from raft.internals to raft
  • [KAFKA-17245] - revert topicRecord changes
  • [KAFKA-17276] - Add "ignorable=true" to `replicaDirectoryId` (FetchSnapshotRequest and FetchRequest) to make it work with older version
  • [KAFKA-17300] - documentation for disablement feature
  • [KAFKA-17304] - QuorumController crashes when kraft writes a control record
  • [KAFKA-17305] - Quorum controller should check the finalized kraft.version during broker registration
  • [KAFKA-17319] - Update latestVersionUnstable of ListOffsetsRequest
  • [KAFKA-17326] - The LIST_OFFSET request is removed from the "Api Keys" page
  • [KAFKA-17331] - Throw/return unsupported version exception if the server/client does NOT support EarliestLocalSpec and LatestTieredSpec
  • [KAFKA-17332] - Crash when dynamically removing the active controller
  • [KAFKA-17333] - KRaft notifies the controller of leadership too early
  • [KAFKA-17336] - Add IT to make sure the production MV does not use unstable version of LIST_OFFSET
  • [KAFKA-17426] - KRaft should fail if the directory id is not set
  • [KAFKA-17822] - Update Jetty to 9.4.56 for 3.9