RongtongJin commented on code in PR #1265:
URL: https://github.com/apache/rocketmq-clients/pull/1265#discussion_r3393645688


##########
golang/process_queue.go:
##########
@@ -154,6 +154,7 @@ func (dpq *defaultProcessQueue) 
forwardToDeadLetterQueue0(mv *MessageView, attem
                        " clientId=%s, consumerGroup=%s, messageId=%s, 
attempt=%d, mq=%s, endpoints=%v, requestId=%s, status message=[%s]", clientId, 
consumerGroup, messageId, attempt, dpq.mqstr,
                        endpoints, requestId, status.GetMessage())
                dpq.forwardToDeadLetterQueueLater(mv, 1+attempt, callback)

Review Comment:
   This retry path still does not retry forwarding to the DLQ. With the new 
`return`, the message is no longer evicted immediately after scheduling, but 
`forwardToDeadLetterQueueLater` currently calls `ackMessage0` when the timer 
fires, and its recover path schedules `ackMessageLater`. If that ACK succeeds, 
the callback evicts the message even though it never reached the DLQ. Please 
make `forwardToDeadLetterQueueLater` re-enter `forwardToDeadLetterQueue0`, and 
have the recover path reschedule `forwardToDeadLetterQueueLater`.



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