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

   ### Which Issue(s) This PR Fixes
   
   - Fixes #11195
   
   ### Brief Description
   
   Fix three defects in the POP retry message recoding logic in 
`PopConsumerService.popAsync` (the RocksDB/KV POP path), which together prevent 
retry messages from being recoded back to their origin topic:
   
   1. **Inverted gate** — `recode` is now 
`!isPopResponseReturnActualRetryTopic()` (was missing the `!`), matching the 
code's own comment and the non-KV `PopMessageProcessor` path.
   2. **Wrong origin topic** — pass the business topic `topicId` instead of 
`popConsumerRecord.getTopicId()` (the retry topic), so 
`messageExt.setTopic(topicId)` actually restores the origin topic.
   3. **Wrong checkpoint offset** — pass `popConsumerRecord.getOffset()` 
(message queue offset) instead of `popConsumerRecord.getQueueId()` (queue 
index), so the `POP_CK` checkpoint used for ack / offset advancement is correct.
   
   ### How Did You Test This Change?
   
   - `mvn -pl broker -Dtest=PopConsumerServiceTest test` — 20/20 pass (adds 
`popAsyncRecodeRetryMessageTest` and 
`popAsyncNotRecodeWhenReturnActualRetryTopicTest`).
   - `mvn -pl broker test` — 830 tests, 0 failures, 0 errors, 4 skipped.


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