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]
