zmuxuny opened a new pull request, #11211:
URL: https://github.com/apache/rocketmq/pull/11211

   ### Which Issue(s) This PR Fixes
   
   Fixes #10667
   
   ### Brief Description
   
   `PopConsumerCache` previously discarded the `CompletableFuture` returned by 
`PopConsumerService.revive` and immediately cleared every staged checkpoint. A 
`false` result or exceptional completion therefore removed an unacknowledged 
message without a successful revive.
   
   The cache now observes each revive result. It keeps the checkpoint staged 
while a revive is pending or has failed, retries failures on a later sweep, and 
removes a checkpoint only after a `true` result. An in-flight marker prevents 
duplicate dispatch. Offline cleanup waits for pending revives, then persists 
remaining checkpoints before removing the cache entry. The retained minimum 
offset also prevents a cleanup sweep from committing past a failed checkpoint.
   
   ### How Did You Test This Change?
   
   - `mvn -B -ntp -o -pl broker -am -Dtest=PopConsumerCacheTest 
-Dsurefire.failIfNoSpecifiedTests=false test`: 6 tests passed. The new cases 
cover exceptional completion and retry, offline eviction during a pending 
revive, and committed-offset gating while an earlier checkpoint remains pending.
   - The reactor build passed Checkstyle and SpotBugs checks.
   - `git diff --check`: clean.
   


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