CalvinConfluent commented on code in PR #17402: URL: https://github.com/apache/kafka/pull/17402#discussion_r1795773485
########## clients/src/main/java/org/apache/kafka/clients/producer/internals/TransactionManager.java: ########## @@ -1568,6 +1571,17 @@ public void handleResponse(AbstractResponse response) { Errors error = endTxnResponse.error(); if (error == Errors.NONE) { + // For transaction version 5+, the broker includes the producerId and producerEpoch in the EndTxnResponse. + // KIP-890 Part 2 mandates bumping the epoch after every transaction. If the epoch overflows, + // a new producerId is returned with epoch set to 0. + if (isTransactionV2Enabled) { Review Comment: > TV2 = true but the EndTxnResponse < 5 This can happen if - TV2 = true when the transaction starts. (The client will check TV2 = true until the next transaction) - The broker has an image downgrade which does not support EndTxn version 5 anymore - The client updates the Api versions. - The client sends the EndTxn version 4 and gets the responses of version 4. It is super rare and like Justine mentioned, we can just use the EndTxn response to determine the action. ########## clients/src/main/java/org/apache/kafka/clients/producer/internals/TransactionManager.java: ########## @@ -1568,6 +1571,17 @@ public void handleResponse(AbstractResponse response) { Errors error = endTxnResponse.error(); if (error == Errors.NONE) { + // For transaction version 5+, the broker includes the producerId and producerEpoch in the EndTxnResponse. + // KIP-890 Part 2 mandates bumping the epoch after every transaction. If the epoch overflows, + // a new producerId is returned with epoch set to 0. + if (isTransactionV2Enabled) { Review Comment: > TV2 = true but the EndTxnResponse < 5 This can happen if - TV2 = true when the transaction starts. (The client will check TV2 = true until the next transaction) - The broker has an image downgrade which does not support EndTxn version 5 anymore - The client updates the Api versions. - The client sends the EndTxn version 4 and gets the responses of version 4. It is super rare and like Justine mentioned, we can just use the EndTxn response to determine the action. -- 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