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]

Reply via email to