jolshan commented on code in PR #19910:
URL: https://github.com/apache/kafka/pull/19910#discussion_r2136822173


##########
core/src/main/scala/kafka/coordinator/transaction/TransactionCoordinator.scala:
##########
@@ -819,11 +819,14 @@ class TransactionCoordinator(txnConfig: TransactionConfig,
                 }
 
               if (nextState == TransactionState.PREPARE_ABORT && isEpochFence) 
{
-                // We should clear the pending state to make way for the 
transition to PrepareAbort and also bump
-                // the epoch in the transaction metadata we are about to 
append.
+                // We should clear the pending state to make way for the 
transition to PrepareAbort
                 txnMetadata.pendingState = None
-                txnMetadata.producerEpoch = producerEpoch
-                txnMetadata.lastProducerEpoch = RecordBatch.NO_PRODUCER_EPOCH
+                if (!clientTransactionVersion.supportsEpochBump()) {
+                  // For TV1, manually bump // the epoch in the transaction 
metadata we are about to append.
+                  txnMetadata.producerEpoch = producerEpoch
+                  txnMetadata.lastProducerEpoch = RecordBatch.NO_PRODUCER_EPOCH

Review Comment:
   Yeah if I recall correctly, for tv2, I wanted to try to avoid setting fields 
outside of the actual transition. It was just this weird epoch fence state that 
does things differently.



-- 
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

Reply via email to