You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2020/02/25 05:44:00 UTC

[jira] [Commented] (KAFKA-9600) EndTxn handler should check strict epoch equality

    [ https://issues.apache.org/jira/browse/KAFKA-9600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17044133#comment-17044133 ] 

ASF GitHub Bot commented on KAFKA-9600:
---------------------------------------

abbccdda commented on pull request #8164: KAFKA-9600: EndTxn should enforce strict epoch checking if from client
URL: https://github.com/apache/kafka/pull/8164
 
 
   This PR enhances the epoch checking logic for endTransaction call in TransactionCoordinator. Previously it relaxes the checking by allowing a producer epoch bump, which is error-prone since there is no reason to see a producer epoch bump from client.
   
   Since this is purely a server side bug which requires no client side change, we haven't added any integration test to verify this behavior yet.
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   
 
----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> EndTxn handler should check strict epoch equality
> -------------------------------------------------
>
>                 Key: KAFKA-9600
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9600
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Jason Gustafson
>            Assignee: Boyang Chen
>            Priority: Major
>
> The EndTxn path in TransactionCoordinator is shared between direct calls to EndTxn from the client and internal transaction abort logic. To support the latter, the code is written to allow an epoch bump. However, if the client bumps the epoch unexpectedly (e.g. due to a buggy implementation), then the internal invariants are violated which results in a hanging transaction. Specifically, the transaction is left in a pending state because the epoch following append to the log does not match what we expect.
> To fix this, we should ensure that an EndTxn from the client checks for strict epoch equality.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)