The GitHub Actions job "CodeQL Analysis" on rocketmq.git/fix-pop-retry-recode 
has failed.
Run started by GitHub user R0CKing666 (triggered by R0CKing666).

Head commit for run:
dc4875d39c0dd8d7f033bfac6100d8557943259d / R0CKing666 
<[email protected]>
Fix POP retry message recoding in PopConsumerService

The retry recode branch in PopConsumerService.popAsync is broken in three
ways, so with the default configuration (popResponseReturnActualRetryTopic
=false) retry messages are never recoded back to their origin topic:

1. The recode gate is inverted against its own comment and the non-KV
   PopMessageProcessor path: 'recode' is set to
   isPopResponseReturnActualRetryTopic() instead of its negation.

2. The origin topic is wrong: popConsumerRecord.getTopicId() is the retry
   topic (e.g. %RETRY%group_topic), so messageExt.setTopic(topicId) in
   recodeRetryMessage is a no-op. The business topic is passed instead.

3. The checkpoint offset is wrong: popConsumerRecord.getQueueId() (queue
   index) is passed where the message queue offset is expected, corrupting
   the POP_CK checkpoint used for ack and offset advancement.

The non-KV PopMessageProcessor path recodes only when
!isPopResponseReturnActualRetryTopic() && isRetry, using the request topic
and the start offset, which this change now mirrors.

Adds two tests covering the recode gate and its arguments.

Report URL: https://github.com/apache/rocketmq/actions/runs/35611235147

With regards,
GitHub Actions via GitBox

Reply via email to