rreddy-22 commented on code in PR #17402:
URL: https://github.com/apache/kafka/pull/17402#discussion_r1794357870


##########
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:
   I understand that we would rather use the response version to be consistent 
with the server but I'm trying to understand when we would be in a situation 
where TV2 = true but the EndTxnResponse < 5 or vice versa where TV2 = false and 
EndTxnResponse > 5. Afaik it's always a 1:1 mapping but I might be missing 
something. Unless it's possible to change the TV mid transaction. Is there some 
edge case we want to avoid by using the response version instead of the flag?



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