yuluo-yx opened a new issue, #10870: URL: https://github.com/apache/rocketmq/issues/10870
### Before Creating the Bug Report - [x] I found a bug, not just a question. - [x] I searched open GitHub Issues and pull requests and found no duplicate. - [x] I confirmed that this bug belongs to Apache RocketMQ. ### Runtime platform environment macOS (Darwin), reproduced with an isolated local unit test. ### RocketMQ version Branch: develop Git commit: fd0c95920e0deac96ce2ae27442747cc5e65e930 ### JDK Version Zulu OpenJDK 8 (8.94.0.17) ### Describe the Bug ProcessQueue.putMessage assigns queueOffsetMax from each newly inserted message. When a batch is not ordered by queue offset, a lower offset processed last overwrites the real maximum. After the queue is drained, removeMessage therefore returns a stale next offset. ### Steps to Reproduce 1. Create a ProcessQueue. 2. Insert two messages in one batch with queue offsets 10 and 5, in that order. 3. Remove both messages. 4. Observe that the returned next offset is 6. ### What Did You Expect to See? The returned next offset should be 11, one greater than the highest offset ever inserted. ### What Did You See Instead? The returned next offset is based on the last iterated message rather than the maximum queue offset. ### Additional Context The issue is deterministic and is covered by ProcessQueueTest. -- 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]
