ai-yang opened a new pull request, #10759: URL: https://github.com/apache/rocketmq/pull/10759
### Which Issue(s) This PR Fixes Fixes #10756 ### Brief Description `ConsumeQueue.putMessagePositionInfoWrapper()` allocated a `ConsumeQueueExt` unit before the main CQ idempotency check. Replaying a duplicate dispatch therefore skipped the CQ append but still left an unreferenced Ext unit, which a later valid dispatch could seal inside the live Ext range. This change reuses the main CQ physical-end idempotency predicate before allocating an Ext unit. Duplicate replay still follows the existing successful wrapper path, so checkpoint advancement and multi-dispatch behavior are preserved while the orphan allocation is avoided. ### How Did You Test This Change? - Unmodified `develop`: the deterministic duplicate-dispatch regression failed in 5/5 isolated JDK 8 Maven processes. - Fixed targeted regression: 20 isolated Maven/JVM processes, 1/1 each (20/20 total). - Complete `ConsumeQueueTest`: 11/11. - Full `store -am test`: common 241/241, remoting 174/174, and store 314 tests with 4 skips, 0 failures, and 0 errors. - Maven validate and Checkstyle: 0 violations. - SpotBugs: 0 bugs/errors across all four reactor modules. - `git diff --check`: passed. -- 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]
