jim0987795064 opened a new pull request, #20170: URL: https://github.com/apache/kafka/pull/20170
RoundRobinPartitioner behaviour was broken by sticky partitioning (KIP-480). This patch addresses the behavioural issue caused by the second call to `partition()` after `onNewBatch()`, in a predicatable and thread-safe manner. Unit tested by simulation of multiple threads producing to two topics with race conditions. **Changes: - Store the last used partition per batch in a thread-safe queue to ensures thread-safety across multiple producer threads. - Adds unit tests that simulate multiple threads producing to two topics. **Reasons: - The original round-robin algorithm relies on a shared counter, which can result in multiple threads assigning the same partition for new batches. This breaks the intended even distribution and causes partition skew. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org