Release Notes - Kafka - Version 0.11.0.0
Below is a summary of the JIRA issues addressed in the 0.11.0.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
http://kafka.apache.org/documentation.html.
New Feature
- [KAFKA-3487] - KIP-146: Support per-connector/per-task classloaders in Connect
- [KAFKA-4208] - Add Record Headers
- [KAFKA-4586] - Add purgeDataBefore() API in AdminClient
- [KAFKA-4720] - Add KStream.peek(ForeachAction)
- [KAFKA-4743] - Add a tool to Reset Consumer Group Offsets
- [KAFKA-4881] - Add internal leave.group.on.close config to consumer
- [KAFKA-4923] - Add Exactly-Once Semantics to Streams
- [KAFKA-5059] - Implement Transactional Coordinator
- [KAFKA-5192] - Range Scan for Windowed State Stores
Improvement
- [KAFKA-1449] - Extend wire protocol to allow CRC32C
- [KAFKA-2358] - Cluster collection returning methods should never return null
- [KAFKA-2955] - Add Prompt to kafka-console-producer
- [KAFKA-3714] - Allow users greater access to register custom streams metrics
- [KAFKA-3878] - Exponential backoff for broker reconnect attempts (KIP-144)
- [KAFKA-3989] - Add JMH module for Benchmarks
- [KAFKA-3995] - Split the ProducerBatch and resend when received RecordTooLargeException
- [KAFKA-4144] - Allow per stream/table timestamp extractor
- [KAFKA-4195] - support throttling on request rate
- [KAFKA-4266] - Replication Quota Tests: Ensure ZK updated before tests start
- [KAFKA-4276] - REST configuration not visible in connector properties config files
- [KAFKA-4291] - TopicCommand --describe shows topics marked for deletion as under-replicated and unavailable (KIP-137)
- [KAFKA-4317] - RocksDB checkpoint files lost on kill -9
- [KAFKA-4613] - Treat null-key records the same way for joins and aggreations
- [KAFKA-4636] - Per listener security setting overrides (KIP-103)
- [KAFKA-4684] - Kafka does not offer kafka-configs.bat on Windows box
- [KAFKA-4702] - Parametrize streams benchmarks to run at scale
- [KAFKA-4709] - Error message from Struct.validate() should include the name of the offending field.
- [KAFKA-4722] - Add application.id to StreamThread name
- [KAFKA-4733] - Improve Streams Reset Tool console output
- [KAFKA-4769] - Add Float serializer, deserializer, serde
- [KAFKA-4772] - Exploit #peek to implement #print() and other methods
- [KAFKA-4773] - The Kafka build should run findbugs
- [KAFKA-4774] - Inner classes which don't need a reference to the outer class should be static
- [KAFKA-4775] - Fix findbugs warnings in kafka-tools
- [KAFKA-4839] - throw NoOffsetForPartitionException once for all assigned partitions from poll
- [KAFKA-4843] - Stream round-robin scheduler is inneficient
- [KAFKA-4922] - Fix several FindBugs warnings in Clients and Connect
- [KAFKA-4943] - SCRAM secret's should be better protected with Zookeeper ACLs
- [KAFKA-4965] - set internal.leave.group.on.close to false in KafkaStreams
- [KAFKA-4982] - Add listener tag to socket-server-metrics.connection-... metrics (KIP-136)
- [KAFKA-5036] - Followups from KIP-101
- [KAFKA-5052] - We shouldn't pass the underlying exception to RetriableCommitFailedException when an async offset commit fails.
- [KAFKA-5068] - Optionally print out metrics after running the perf tests
- [KAFKA-5091] - ReassignPartitionsCommand should protect against empty replica list assignment
- [KAFKA-5094] - Censor SCRAM config change logging
- [KAFKA-5104] - DumpLogSegments should not open index files with `rw`
- [KAFKA-5108] - Add support for reading PID snapshot files to DumpLogSegments
- [KAFKA-5111] - Improve internal Task APIs
- [KAFKA-5112] - Trunk compatibility tests should test against 0.10.2
- [KAFKA-5118] - Improve message for Kafka failed startup with non-Kafka data in data.dirs
- [KAFKA-5137] - Controlled shutdown timeout message improvement
- [KAFKA-5161] - reassign-partitions to check if broker of ID exists in cluster
- [KAFKA-5166] - Add option "dry run" to Streams application reset tool
- [KAFKA-5176] - AdminClient: add controller and clusterId methods to DescribeClusterResults
- [KAFKA-5194] - KIP-153: Include only client traffic in BytesOutPerSec metric
- [KAFKA-5210] - Application Reset Tool does not need to seek for internal topics
- [KAFKA-5218] - New Short serializer, deserializer, serde
- [KAFKA-5257] - Change Default unclean.leader.election.enabled from True to False
- [KAFKA-5277] - Sticky Assignor should not cache the calculated assignment (KIP-54 follow-up)
- [KAFKA-5311] - Support ExtendedDeserializer in Kafka Streams
- [KAFKA-5333] - Remove Broker ACL resource type
- [KAFKA-5405] - Request log should log throttle time
- [KAFKA-5411] - Generate javadoc for AdminClient and show configs in documentation
- [KAFKA-5446] - Annoying braces showed on log.error using streams
Bug
- [KAFKA-977] - Implement generation/term per leader to reconcile messages correctly
- [KAFKA-1211] - Hold the produce request with ack > 1 in purgatory until replicas' HW has larger than the produce offset (KIP-101)
- [KAFKA-2000] - Delete consumer offsets from kafka once the topic is deleted
- [KAFKA-2818] - Clean up Controller Object on forced Resignation
- [KAFKA-2857] - ConsumerGroupCommand throws GroupCoordinatorNotAvailableException when describing a non-existent group before the offset topic is created
- [KAFKA-3070] - SASL unit tests dont work with IBM JDK
- [KAFKA-3123] - Follower Broker cannot start if offsets are already out of range
- [KAFKA-3353] - Remove deprecated producer configs.
- [KAFKA-3754] - Kafka default -Xloggc settings should include GC log rotation flags
- [KAFKA-3835] - Streams is creating two ProducerRecords for each send via RecordCollector
- [KAFKA-3919] - Broker faills to start after ungraceful shutdown due to non-monotonically incrementing offsets in logs
- [KAFKA-3940] - Log should check the return value of dir.mkdirs()
- [KAFKA-3959] - KIP-115: __consumer_offsets wrong number of replicas at startup
- [KAFKA-3982] - Issue with processing order of consumer properties in console consumer
- [KAFKA-4039] - Exit Strategy: using exceptions instead of inline invocation of exit/halt
- [KAFKA-4059] - Documentation still refers to AsyncProducer and SyncProducer
- [KAFKA-4343] - KIP-151: Connect REST API should expose whether each connector is a source or sink
- [KAFKA-4408] - KTable doesn't work with ProcessorTopologyTestDriver in Kafka 0.10.1.0
- [KAFKA-4459] - rat license check not running in Jenkins
- [KAFKA-4461] - When using ProcessorTopologyTestDriver, the combination of map and .groupByKey does not produce any result
- [KAFKA-4484] - Set more conservative default values on RocksDB for memory usage
- [KAFKA-4494] - Significant startup delays in KStreams app
- [KAFKA-4525] - Kafka should not require SSL trust store password
- [KAFKA-4564] - When the destination brokers are down or misconfigured in config, Streams should fail fast
- [KAFKA-4567] - Connect Producer and Consumer ignore ssl parameters configured for worker
- [KAFKA-4594] - Annotate integration tests and provide gradle build targets to run subsets of tests
- [KAFKA-4595] - Controller send thread can't stop when broker change listener event trigger for dead brokers
- [KAFKA-4603] - the argument of shell in doc wrong and command parsed error
- [KAFKA-4607] - Kafka Streams allows you to provide strings with illegal characters for internal topic names
- [KAFKA-4617] - gradle-generated core eclipse project has incorrect source folder structure
- [KAFKA-4631] - Refresh consumer metadata more frequently for unknown subscribed topics
- [KAFKA-4667] - KIP-154: Connect should create internal topics
- [KAFKA-4671] - Fix Streams window retention policy
- [KAFKA-4672] - KIP-100 api changes break Java 8 lambda expressions in some cases
- [KAFKA-4673] - Python VerifiableConsumer service has thread-safety bug for event_handlers
- [KAFKA-4677] - Avoid unnecessary task movement across threads during rebalance
- [KAFKA-4689] - OffsetValidationTest fails validation with "Current position greater than the total number of consumed records"
- [KAFKA-4700] - StreamsKafkaClient drops security configs
- [KAFKA-4708] - Fix Transient failure in BrokerApiVersionsCommandTest.checkBrokerApiVersionCommandOutput
- [KAFKA-4714] - Implement remaining KIP-66 SMTs
- [KAFKA-4716] - Fix logic for re-checking if internal topic is ready
- [KAFKA-4717] - connect jars are missing LICENSE/NOTICE files
- [KAFKA-4719] - Timed out waiting for consumption in OffsetValidationTest.test_broker_failure
- [KAFKA-4724] - Clean up of state directories can possibly remove stores that are about to be used by another thread
- [KAFKA-4728] - KafkaConsumer#commitSync should clone its input
- [KAFKA-4735] - Fix deadlock issue during MM shutdown
- [KAFKA-4738] - Remove generic type of class ClientState
- [KAFKA-4741] - Memory leak in RecordAccumulator.append
- [KAFKA-4744] - Streams_bounce test failing occassionally
- [KAFKA-4749] - fix join-time-max and sync-time-max MeasurableStat type
- [KAFKA-4752] - Streams Simple Benchmark MB/sec calculation is not correct for Join operations
- [KAFKA-4755] - SimpleBenchmark test fails for streams
- [KAFKA-4757] - Improve NetworkClient trace logging of request details
- [KAFKA-4758] - Connect WorkerSinkTask is missing checks for NO_TIMESTAMP
- [KAFKA-4765] - org.apache.kafka.clients.producer.KafkaProducerTest#testConstructorFailureCloseResource and Similar Tests are Failing on some Systems (127.0.53.53 Collision Warning)
- [KAFKA-4776] - Implement graceful handling for improperly formed compressed message sets
- [KAFKA-4777] - Kafka client Heartbeat thread use all the cpu.
- [KAFKA-4779] - Failure in kafka/tests/kafkatest/tests/core/security_rolling_upgrade_test.py
- [KAFKA-4783] - KIP-128: Blackbox or pass through converter or ByteArrayConverter for connect
- [KAFKA-4788] - Broker level configuration 'log.segment.bytes' not used when 'segment.bytes' not configured per topic.
- [KAFKA-4789] - ProcessorTopologyTestDriver does not forward extracted timestamps to internal topics
- [KAFKA-4790] - Kafka cannot recover after a disk full
- [KAFKA-4791] - Kafka Streams - unable to add state stores when using wildcard topics on the source
- [KAFKA-4796] - Fix some findbugs warnings in Kafka Java client
- [KAFKA-4800] - Streams State transition ASCII diagrams need fixing and polishing
- [KAFKA-4806] - KafkaConsumer: ConsumerConfig gets logged twice.
- [KAFKA-4809] - docker/run_tests.sh should set up /opt/kafka-dev to be the source directory
- [KAFKA-4810] - SchemaBuilder should be more lax about checking that fields are unset if they are being set to the same value
- [KAFKA-4811] - ReplicaFetchThread may fail to create due to existing metric
- [KAFKA-4814] - ZookeeperLeaderElector not respecting zookeeper.set.acl
- [KAFKA-4826] - Fix some findbugs warnings in Kafka Streams
- [KAFKA-4828] - ProcessorTopologyTestDriver does not work when using .through()
- [KAFKA-4837] - Config validation in Connector plugins need to compare against both canonical and simple class names
- [KAFKA-4841] - NetworkClient should only consider a connection to be fail after attempt to connect
- [KAFKA-4848] - Stream thread getting into deadlock state while trying to get rocksdb lock in retryWithBackoff
- [KAFKA-4851] - SessionStore.fetch(key) is a performance bottleneck
- [KAFKA-4855] - Struct SchemaBuilder should not allow duplicate fields.
- [KAFKA-4863] - Querying window store may return unwanted keys
- [KAFKA-4864] - Kafka Secure Migrator tool doesn't secure all the nodes
- [KAFKA-4866] - Kafka console consumer property is ignored
- [KAFKA-4878] - Kafka Connect does not log connector configuration errors
- [KAFKA-4885] - processstreamwithcachedstatestore and other streams benchmarks fail occasionally
- [KAFKA-4891] - kafka.request.logger TRACE regression
- [KAFKA-4894] - Fix findbugs "default character set in use" warnings
- [KAFKA-4895] - Fix findbugs "format string should use %n rather than \n" in tools
- [KAFKA-4899] - Fix findbugs warnings in kafka-core
- [KAFKA-4901] - Make ProduceRequest thread-safe
- [KAFKA-4902] - Utils#delete should correctly handle I/O errors and symlinks
- [KAFKA-4903] - Remove unused code for reading Shell command stdout and add unit test
- [KAFKA-4916] - Add streams tests with brokers failing
- [KAFKA-4919] - Document that stores must not be closed when Processors are closed
- [KAFKA-4924] - Fix findbugs warnings in Kafka-Connect-API
- [KAFKA-4925] - Add a configurable delay to the initial consumer group rebalance
- [KAFKA-4927] - KStreamsTestDriver fails with NPE when KStream.to() sinks are used
- [KAFKA-4929] - Transformation Key/Value type references should be to class name(), not canonicalName()
- [KAFKA-4937] - Batch resetting offsets in Streams' StoreChangelogReader
- [KAFKA-4942] - Kafka Connect: Offset committing times out before expected
- [KAFKA-4944] - Fix an "unread field" findbugs warning in streams examples
- [KAFKA-4945] - Suppress findbugs warnings about machine-generated code in jmh-benchmarks
- [KAFKA-4959] - remove controller concurrent access to non-threadsafe NetworkClient, Selector, and SSLEngine
- [KAFKA-4964] - Delete the kafka to prefix the name of the keystore and truststore file will be more suitable
- [KAFKA-4977] - kafka-connect: fix findbugs issues in connect/runtime
- [KAFKA-4980] - testReprocessingFromScratch unit test failure
- [KAFKA-4993] - Fix findbugs warnings in kafka-clients
- [KAFKA-4995] - Fix remaining findbugs warnings in Kafka Streams
- [KAFKA-5003] - StreamThread should catch InvalidTopicException
- [KAFKA-5005] - JoinIntegrationTest fails occasionally
- [KAFKA-5013] - Fail the build when findbugs fails
- [KAFKA-5014] - SSL Channel not ready but tcp is established and the server is hung will not sending metadata
- [KAFKA-5038] - running multiple kafka streams instances causes one or more instance to get into file contention
- [KAFKA-5040] - Increase number of Streams producer retries from the default of 0
- [KAFKA-5042] - InFlightRequests#isEmpty() always returns false
- [KAFKA-5043] - Add FindCoordinatorRequest RPC stub and update InitPidRequest for KIP-98
- [KAFKA-5047] - NullPointerException while using GlobalKTable in KafkaStreams
- [KAFKA-5049] - Chroot check should be done for each ZkUtils instance
- [KAFKA-5051] - Avoid DNS reverse lookup in security-critical TLS code path
- [KAFKA-5055] - Kafka Streams skipped-records-rate sensor producing nonzero values even when FailOnInvalidTimestamp is used as extractor
- [KAFKA-5073] - Kafka Streams stuck rebalancing after exception thrown in rebalance listener
- [KAFKA-5075] - Defer exception to the next pollOnce() if consumer's fetch position has already increased
- [KAFKA-5078] - PartitionRecords.fetchRecords(...) should defer exception to the next call if iterator has already moved across any valid record
- [KAFKA-5081] - two versions of jackson-annotations-xxx.jar in distribution tgz
- [KAFKA-5086] - Update topic expiry time in Metadata every time the topic metadata is requested
- [KAFKA-5088] - some spelling error in code comment
- [KAFKA-5090] - Kafka Streams SessionStore.findSessions javadoc broken
- [KAFKA-5095] - ThreadCacheTest.cacheOverheadsSmallValues fails intermittently
- [KAFKA-5099] - Replica Deletion Regression from KIP-101
- [KAFKA-5100] - ProducerPerformanceService failing due to parsing error
- [KAFKA-5101] - Remove KafkaController's incrementControllerEpoch method parameter
- [KAFKA-5119] - Transient test failure SocketServerTest.testMetricCollectionAfterShutdown
- [KAFKA-5135] - Controller Health Metrics (KIP-143)
- [KAFKA-5140] - Flaky ResetIntegrationTest
- [KAFKA-5143] - Windows platform does not offer kafka-broker-api-versions.bat
- [KAFKA-5144] - MinTimestampTracker uses confusing variable names
- [KAFKA-5150] - LZ4 decompression is 4-5x slower than Snappy on small batches / messages
- [KAFKA-5164] - SetSchemaMetadata does not replace the schemas in structs correctly
- [KAFKA-5167] - streams task gets stuck after re-balance due to LockException
- [KAFKA-5169] - KafkaConsumer.close should be idempotent
- [KAFKA-5170] - KafkaAdminClientIntegration test should wait until metadata is propagated to all brokers
- [KAFKA-5172] - CachingSessionStore doesn't fetchPrevious correctly.
- [KAFKA-5173] - SASL tests failing with Could not find a 'KafkaServer' or 'sasl_plaintext.KafkaServer' entry in the JAAS configuration
- [KAFKA-5174] - RocksDb might stall in environments with 1 core only
- [KAFKA-5198] - RocksDbStore#openIterators should be synchronized, since it is accessed from multiple threads
- [KAFKA-5203] - Percentilles are calculated incorrectly
- [KAFKA-5205] - CachingSessionStore doesn't use the default keySerde.
- [KAFKA-5206] - RocksDBSessionStore doesn't use default aggSerde.
- [KAFKA-5211] - KafkaConsumer should not skip a corrupted record after throwing an exception.
- [KAFKA-5213] - IllegalStateException in ensureOpenForRecordAppend
- [KAFKA-5215] - Small JavaDoc fix for AdminClient#describeTopics
- [KAFKA-5216] - Cached Session/Window store may return error on iterator.peekNextKey()
- [KAFKA-5226] - NullPointerException (NPE) in SourceNodeRecordDeserializer.deserialize
- [KAFKA-5229] - Reflections logs excessive warnings when scanning classpaths
- [KAFKA-5230] - Recommended values for Connect transformations contain the wrong class name
- [KAFKA-5232] - Kafka broker fails to start if a topic containing dot in its name is marked for delete but hasn't been deleted during previous uptime
- [KAFKA-5236] - Regression in on-disk log size when using Snappy compression with 0.8.2 log message format
- [KAFKA-5241] - GlobalKTable does not checkpoint offsets after restoring state
- [KAFKA-5244] - Tests which delete singleton metrics break subsequent metrics tests
- [KAFKA-5250] - handleFetchRequest should do down conversion after throttling
- [KAFKA-5263] - kakfa-clients consume 100% CPU with manual partition assignment when network connection is lost
- [KAFKA-5265] - Move ACLs, Config, NodeVersions classes into org.apache.kafka.common
- [KAFKA-5266] - Follow-up improvements for consumer offset reset tool (KIP-122)
- [KAFKA-5278] - kafka-console-consumer: `--value-deserializer` is not working but `--property value.deserializer` does
- [KAFKA-5289] - One StopReplicaRequest will caused two Responses
- [KAFKA-5293] - Do not apply exponential backoff if users have overridden reconnect.backoff.ms
- [KAFKA-5294] - PlainSaslServerFactory should allow a null Map in getMechanismNames
- [KAFKA-5303] - FetchRequest doesn't implement toString
- [KAFKA-5305] - Missing logging information in ReplicaFetcher
- [KAFKA-5309] - Stores not queryable after one thread died
- [KAFKA-5316] - Log cleaning can increase message size and cause cleaner to crash with buffer overflow
- [KAFKA-5321] - MemoryRecords.filterTo can return corrupt data if output buffer is not large enough
- [KAFKA-5324] - AdminClient: add close with timeout, fix some timeout bugs
- [KAFKA-5325] - Connection Lose during Kafka Kerberos Renewal process
- [KAFKA-5329] - Replica list in the metadata cache on the broker may have different order from zookeeper
- [KAFKA-5334] - rocksdb.config.setter must be a class instance, not a class name
- [KAFKA-5336] - ListGroup requires Describe on Cluster, but the command-line AclCommand tool does not allow this to be set
- [KAFKA-5338] - There is a Misspell in ResetIntegrationTest
- [KAFKA-5344] - Change message.timestamp.difference.max.ms back to Long.MaxValue
- [KAFKA-5345] - Some socket connections not closed after restart of Kafka Streams
- [KAFKA-5349] - KafkaConsumer occasionally hits IllegalStateException
- [KAFKA-5350] - Modify Unstable annotations in Streams API
- [KAFKA-5353] - baseTimestamp should always have a create timestamp
- [KAFKA-5354] - MirrorMaker not preserving headers
- [KAFKA-5360] - Down-converted uncompressed batches should respect fetch offset
- [KAFKA-5361] - Add EOS integration tests for Streams API
- [KAFKA-5362] - Add EOS system tests for Streams API
- [KAFKA-5368] - Kafka Streams skipped-records-rate sensor produces nonzero values when the timestamps are valid
- [KAFKA-5373] - ConsoleConsumer prints out object addresses rather than what is expected
- [KAFKA-5374] - AdminClient gets "server returned information about unknown correlation ID" when communicating with older brokers
- [KAFKA-5375] - Transactions: Concurrent transactional consumer loses messages when there are broker bounces
- [KAFKA-5380] - Transient test failure: KafkaConsumerTest.testChangingRegexSubscription
- [KAFKA-5382] - Log recovery can fail if topic names contain one of the index suffixes
- [KAFKA-5385] - Transactional Producer allows batches to expire and commits transactions regardless
- [KAFKA-5394] - KafkaAdminClient#timeoutCallsInFlight does not work as expected
- [KAFKA-5395] - Distributed Herder Deadlocks on Shutdown
- [KAFKA-5404] - Add more AdminClient checks to ClientCompatibilityTest
- [KAFKA-5413] - Log cleaner fails due to large offset in segment file
- [KAFKA-5414] - Console consumer offset commit regression
- [KAFKA-5415] - TransactionCoordinator doesn't complete transition to PrepareCommit state
- [KAFKA-5416] - TransactionCoordinator doesn't complete transition to CompleteCommit
- [KAFKA-5418] - ZkUtils.getAllPartitions() may fail if a topic is marked for deletion
- [KAFKA-5422] - Multiple produce request failures causes invalid state transition in TransactionManager
- [KAFKA-5433] - Transient test failure: SaslPlainSslEndToEndAuthorizationTest.testNoProduceWithDescribeAcl
- [KAFKA-5442] - Streams producer `client.id` are not unique for EOS
- [KAFKA-5448] - TimestampConverter's "type" config conflicts with the basic Transformation "type" config
- [KAFKA-5449] - Flaky test TransactionsTest.testReadCommittedConsumerShouldNotSeeUndecidedData
- [KAFKA-5450] - Scripts to startup Connect in system tests have too short a timeout
- [KAFKA-5455] - Update java docs for consumer and producer to be up to date for EOS
- [KAFKA-5456] - Producer fails with NPE if compressed V0 or V1 record is larger than batch size
- [KAFKA-5457] - MemoryRecordsBuilder.hasRoomfor doesn't take into account the headers while computing available space
- [KAFKA-5463] - Controller incorrectly logs rack information when new brokers are added
- [KAFKA-5472] - Connector validate REST endpoint returning duplicate entries in "groups"
- [KAFKA-5475] - Connector config validation REST API endpoint not including fields for transformations
- [KAFKA-5477] - TransactionalProducer sleeps unnecessarily long during back to back transactions
- [KAFKA-5486] - org.apache.kafka logging should go to server.log
- [KAFKA-5491] - The ProducerPerformance tool should support transactions
- [KAFKA-5498] - Connect validation API stops returning recommendations for some fields after the right sequence of requests
Task
- [KAFKA-3763] - Remove deprecated APIs for 0.11.0.0
- [KAFKA-4422] - Drop support for Scala 2.10 (KIP-119)
- [KAFKA-4679] - Remove unstable markers from Connect APIs
- [KAFKA-5045] - KTable materialization and improved semantics
Test
- [KAFKA-4574] - Transient failure in ZooKeeperSecurityUpgradeTest.test_zk_security_upgrade with security_protocol = SASL_PLAINTEXT, SSL
- [KAFKA-4703] - Test with two SASL_SSL listeners with different JAAS contexts
- [KAFKA-5126] - Implement KIP-98 transactional methods in the MockProducer
- [KAFKA-5366] - Add cases for concurrent transactional reads and writes in system tests
- [KAFKA-5371] - SyncProducerTest.testReachableServer has become flaky
Sub-task
- [KAFKA-2273] - KIP-54: Add rebalance with a minimal number of reassignments to server-defined strategy list
- [KAFKA-2363] - ProducerSendTest.testCloseWithZeroTimeoutFromCallerThread Transient Failure
- [KAFKA-3155] - Transient Failure in kafka.api.PlaintextProducerSendTest.testFlush
- [KAFKA-3264] - Mark the old Scala consumer and related classes as deprecated
- [KAFKA-3265] - Create Java Admin Client
- [KAFKA-3266] - Implement KIP-140 RPCs and APIs for creating, altering, and listing ACLs
- [KAFKA-3267] - Describe/Alter Configs protocol, server and client (KIP-133)
- [KAFKA-3875] - Transient test failure: kafka.api.SslProducerSendTest.testSendNonCompressedMessageWithCreateTime
- [KAFKA-3896] - Unstable test KStreamRepartitionJoinTest.shouldCorrectlyRepartitionOnJoinOperations
- [KAFKA-4198] - Transient test failure: ConsumerBounceTest.testConsumptionWithBrokerFailures
- [KAFKA-4222] - Transient failure in QueryableStateIntegrationTest.queryOnRebalance
- [KAFKA-4378] - Address 2.12 eta-expansion warnings
- [KAFKA-4421] - Update release process so that Scala 2.12 artifacts are published
- [KAFKA-4467] - Run tests on travis-ci using docker
- [KAFKA-4569] - Transient failure in org.apache.kafka.clients.consumer.KafkaConsumerTest.testWakeupWithFetchDataAvailable
- [KAFKA-4588] - QueryableStateIntegrationTest.shouldNotMakeStoreAvailableUntilAllStoresAvailable is occasionally failing on jenkins
- [KAFKA-4642] - Improve test coverage of ProcessorStateManager
- [KAFKA-4644] - Improve test coverage of StreamsPartitionAssignor
- [KAFKA-4645] - Improve test coverage of ProcessorTopology
- [KAFKA-4646] - Improve test coverage AbstractProcessorContext
- [KAFKA-4647] - Improve test coverage of GlobalStreamThread
- [KAFKA-4648] - Improve test coverage StreamTask
- [KAFKA-4649] - Improve test coverage GlobalStateManagerImpl
- [KAFKA-4652] - Improve test coverage KStreamBuilder
- [KAFKA-4654] - Improve test coverage MemoryLRUCache
- [KAFKA-4657] - Improve test coverage of CompositeReadOnlyWindowStore
- [KAFKA-4660] - Improve test coverage KafkaStreams
- [KAFKA-4662] - Improve test coverage TopologyBuilder
- [KAFKA-4786] - Transient test failure: ConsumerCoordinatorTest.testHeartbeatThreadClose
- [KAFKA-4816] - Message format changes for idempotent/transactional producer
- [KAFKA-4817] - Implement idempotent producer
- [KAFKA-4818] - Implement transactional clients
- [KAFKA-4859] - Transient test failure: org.apache.kafka.streams.integration.JoinIntegrationTest.shouldCountClicksPerRegion (again)
- [KAFKA-4935] - Consider disabling record level CRC checks for message format V2
- [KAFKA-4948] - Failure in kafka.admin.DescribeConsumerGroupTest.testDescribeExistingGroupWithNoMembersWithNewConsumer
- [KAFKA-4954] - Implementation and unit tests for request handler thread utilization quota
- [KAFKA-4955] - Add network handler thread utilization to request quota calculation
- [KAFKA-4957] - Add documentation for request quotas
- [KAFKA-4973] - Transient failure of AdminClientTest.testDeleteRecordsWithException
- [KAFKA-4986] - Add producer per task support
- [KAFKA-4990] - Add request/response classes for transactions (KIP-98)
- [KAFKA-5006] - KeyValueStore.put may throw exception unrelated to the current put attempt
- [KAFKA-5019] - Exactly-once upgrade notes
- [KAFKA-5021] - Update Message Delivery Semantics section to take into account KIP-98
- [KAFKA-5028] - convert kafka controller to a single-threaded event queue model
- [KAFKA-5031] - Additional validation in validateMessagesAndAssignOffsets
- [KAFKA-5033] - Reconsider default retries for idempotent producer
- [KAFKA-5069] - add controller integration tests
- [KAFKA-5093] - Load only batch header when rebuilding producer ID map
- [KAFKA-5103] - Refactor AdminUtils to use zkUtils methods instad of zkUtils.zkClient
- [KAFKA-5107] - remove preferred replica election state from ControllerContext
- [KAFKA-5121] - Implement transaction index for KIP-98
- [KAFKA-5124] - shouldInnerLeftJoin unit test fails
- [KAFKA-5128] - TransactionCoordinator - Check inter broker protocol and message format and raise errors if incompatible
- [KAFKA-5129] - TransactionCoordinator - Add ACL check for each request
- [KAFKA-5130] - Change InterBrokerSendThread to use a Queue per broker
- [KAFKA-5131] - WriteTxnMarkers and complete commit/abort on partition immigration
- [KAFKA-5132] - Abort long running transactions
- [KAFKA-5136] - Move coordinatorEpoch from WriteTxnMarkerRequest to TxnMarkerEntry
- [KAFKA-5147] - KafkaProducer's TransactionManager needs a review on synchronization
- [KAFKA-5151] - Refactor TransactionCoordinator in-memory structure and error handling logic
- [KAFKA-5160] - KIP-98 : broker side handling for the TxnOffsetCommitRequest
- [KAFKA-5162] - Add a reference to AdminClient to docs/api.html
- [KAFKA-5171] - TC should not accept empty string transactional id
- [KAFKA-5175] - Transient failure: ControllerIntegrationTest.testPreferredReplicaLeaderElection
- [KAFKA-5179] - Log connection termination during authentication
- [KAFKA-5180] - Transient failure: ControllerIntegrationTest.testControllerMoveIncrementsControllerEpoch
- [KAFKA-5182] - Transient failure: RequestQuotaTest.testResponseThrottleTime
- [KAFKA-5186] - Avoid expensive initialization of producer state when upgrading
- [KAFKA-5188] - Add Integration tests for transactional producer
- [KAFKA-5191] - Autogenerate Consumer Fetcher metrics
- [KAFKA-5196] - LogCleaner should be transaction-aware
- [KAFKA-5202] - Handle topic deletion for ongoing transactions
- [KAFKA-5227] - SaslScramSslEndToEndAuthorizationTest.testNoConsumeWithoutDescribeAclViaSubscribe
- [KAFKA-5231] - TransactinoCoordinator does not bump epoch when aborting open transactions
- [KAFKA-5247] - Consumer GroupCoordinator should continue to materialize committed offsets in offset order even for transactional offset commits
- [KAFKA-5248] - Remove retention time from TxnOffsetCommit RPC
- [KAFKA-5249] - Transaction index recovery does not snapshot properly
- [KAFKA-5251] - Producer should drop queued sends when transaction is aborted
- [KAFKA-5252] - Fix flaky test LogCleanerTest.testCommitMarkerRemoval
- [KAFKA-5258] - move all partition and replica state transition rules into their states
- [KAFKA-5259] - TransactionalId authorization should imply ProducerId authorization
- [KAFKA-5260] - Producer should not send AbortTxn unless transaction has actually begun
- [KAFKA-5268] - TransactionsBounceTest occasionally sees INVALID_TXN_STATE errors
- [KAFKA-5269] - TransactionBounceTest occasionally fails due to partition errors
- [KAFKA-5273] - KafkaConsumer.committed() should get latest committed offsets from the server
- [KAFKA-5274] - Review and improve AdminClient Javadoc for the first release (KIP-117)
- [KAFKA-5275] - Review and potentially tweak AdminClient API for the initial release (KIP-117)
- [KAFKA-5279] - TransactionCoordinator must expire transactionalIds
- [KAFKA-5280] - Protect concurrent access to the cached transaction status
- [KAFKA-5281] - System tests for KIP-98 / transactions
- [KAFKA-5282] - Transactions integration test: Use factory methods to keep track of open producers and consumers and close them all on tearDown
- [KAFKA-5283] - Update clients and server code to make sure that epoch and sequence numbers wrap around
- [KAFKA-5291] - AdminClient should not trigger auto creation of topics
- [KAFKA-5292] - Fix authorization checks in AdminClient
- [KAFKA-5308] - TC should handle UNSUPPORTED_FOR_MESSAGE_FORMAT in WriteTxnMarker response
- [KAFKA-5310] - reset ControllerContext during resignation
- [KAFKA-5317] - Update KIP-98 to reflect changes during implementation.
- [KAFKA-5320] - Update produce/fetch throttle time metrics for any request throttle
- [KAFKA-5322] - Resolve AddPartitions response error code inconsistency
- [KAFKA-5339] - Transactions system test with hard broker bounces fails sporadically
- [KAFKA-5340] - Add additional test cases for batch splitting to ensure idempotent/transactional metadata is preserved
- [KAFKA-5351] - Broker clean bounce test puts the broker into a 'CONCURRENT_TRANSACTIONS' state permanently
- [KAFKA-5355] - Broker returns messages beyond "latest stable offset" to transactional consumer in read_committed mode
- [KAFKA-5357] - StackOverFlow error in transaction coordinator
- [KAFKA-5364] - Producer attempts to send transactional messages before adding partitions to transaction
- [KAFKA-5365] - Fix regression in compressed message iteration affecting magic v0 and v1
- [KAFKA-5376] - Transactions: Concurrent transactional consumer reads aborted messages
- [KAFKA-5378] - Last Stable Offset not returned in Fetch request
- [KAFKA-5427] - Transactional producer cannot find coordinator when trying to abort transaction after error
- [KAFKA-5428] - Transactional producer aborts batches incorrectly in abortable error state
- [KAFKA-5429] - Producer IllegalStateException: Batch has already been completed
- [KAFKA-5435] - Produce state lost if no snapshot retained
- [KAFKA-5437] - TransactionalMessageCopier should be force killed on test shutdown
- [KAFKA-5438] - UnsupportedOperationException in WriteTxnMarkers handler
- [KAFKA-5443] - Consumer should use last offset from batch to set next fetch offset
- [KAFKA-5502] - read current brokers from zookeeper upon processing broker change