hachikuji opened a new pull request #10880:
URL: https://github.com/apache/kafka/pull/10880


   We had been using `RecordAccumulator.beginFlush` in order to force the 
`RecordAccumulator` to flush pending batches when a transaction was being 
completed. Internally, `RecordAccumulator` has a simple counter for the number 
of flushes in progress. The count gets incremented in `beginFlush` and it is 
expected to be decremented by `awaitFlushCompletion`. The second call to 
decrement the counter never happened in the transactional path, so the counter 
could get stuck at a positive value, which means that the linger time would 
effectively be ignored.
   
   The patch here fixes the problem by removing the use of `beginFlush` in 
`Sender`. Instead, we now add an additional condition in `RecordAccumulator` to 
explicitly check when a transaction is being completed. 
   
   ### 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:
us...@infra.apache.org


Reply via email to