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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]