void-ptr974 opened a new pull request, #4788:
URL: https://github.com/apache/bookkeeper/pull/4788

   Fixes #4680.
   
     Sequence read completion recycled `WriteSet` before `SequenceReadRequest` 
finished using it to register slow bookies. In speculative read scenarios, a 
faster replica can complete the entry
     while an earlier replica is still outstanding, and the completion path 
could access the recycled `WriteSet`.
   
     Late error callbacks could also enter retry/error handling after the entry 
had already completed, which may access recycled `writeSet` / `orderedEnsemble`.
   
     ### Changes
   
     - Snapshot slow bookie addresses before calling the shared `complete()` 
path that recycles `WriteSet`.
     - Ignore late error callbacks after sequence read requests have already 
completed.
     - Apply the same lifecycle fix to `ReadLastConfirmedAndEntryOp` sequence 
reads.
     - Add regression tests for:
       - normal sequence read completion after speculative retry
       - normal sequence read late error after completion
       - ReadLAC sequence read completion after speculative retry
       - ReadLAC late error after completion
   
     ### Tests
   
     ```bash
     mvn -pl bookkeeper-server -Dtest=TestSequenceReadWriteSetRecycle test


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to