[ https://issues.apache.org/jira/browse/KAFKA-17941?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jun Rao resolved KAFKA-17941. ----------------------------- Fix Version/s: 4.0.0 Resolution: Fixed merged the PR to trunk. > TransactionStateManager.loadTransactionMetadata method may get stuck in an > infinite loop > ---------------------------------------------------------------------------------------- > > Key: KAFKA-17941 > URL: https://issues.apache.org/jira/browse/KAFKA-17941 > Project: Kafka > Issue Type: Bug > Reporter: Vincent Jiang > Assignee: Vincent Jiang > Priority: Major > Fix For: 4.0.0 > > > When loading transaction metadata from a transaction log partition, if the > partition contains a segment ending with an empty batch, "currOffset" update > logic at > [https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/coordinator/transaction/TransactionStateManager.scala#L482] > will be skipped. Since "currOffset" is not advanced to next offset of last > batch properly, TransactionStateManager.loadTransactionMetadata method will > be stuck in the "while" loop at > [https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/coordinator/transaction/TransactionStateManager.scala#L438.|https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/coordinator/transaction/TransactionStateManager.scala#L438,] > > After the change of https://issues.apache.org/jira/browse/KAFKA-17076, there > is a higher chance for compaction process to generate segments ending with an > empty batch. As a result, this issue is more likely to be hit now comparing > to before KAFKA-17076 change. -- This message was sent by Atlassian Jira (v8.20.10#820010)