urbandan opened a new pull request, #13796:
URL: https://github.com/apache/kafka/pull/13796

   …atches to complete before resetting the sequence number
   
   The idempotent producer resets the sequence number when a batch fails with a 
non-retriable error. This can violate the idempotent guarantee if there are 
preceding, in-flight requests which are being retried, as their producer epoch 
and sequence number gets rewritten, effectively granting those messages a new 
"identity".
   
   Instead, the producer should wait for the preceding, retried batches to 
complete before resetting the sequence number. This ensures that the sequence 
numbers can only get reset after the preceding batches are definitely completed.
   
   By calling markSequenceUnresolved instead of requestEpochBumpForPartition, 
draining batches from the partition is halted, and the epoch bump is delayed 
until all in-flight requests are completed.
   
   *More detailed description of your change,
   if necessary. The PR title and PR message become
   the squashed commit message, so use a separate
   comment to ping reviewers.*
   
   *Summary of testing strategy (including rationale)
   for the feature or bug fix. Unit and/or integration
   tests are expected for any behaviour change and
   system tests should be considered for larger changes.*
   
   ### 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.

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