The GitHub Actions job "Run Integration Tests" on rocketmq.git/worktree-issue-10263-message-dedup has succeeded. Run started by GitHub user Aias00 (triggered by Aias00).
Head commit for run: d9f966765910f088d8e80669de5438097fc9b3ba / liuhy <[email protected]> [ISSUE #10606] Handle all-duplicate batch without re-marking dedup cache Address the last review remaining items on PR #10606: * Warning item: when every message in a batch is a duplicate, filteredMsgs is empty. The old code set processedMsgs = msgs on that path, so processConsumeResult re-ran markMessagesAsProcessed on the full original batch, re-stamping every duplicate entry's timestamp and needlessly extending its TTL. Now processedMsgs is always the deduped list (empty when all are duplicates): processConsumeResult clamps ackIndex to -1, sends nothing back (skipped duplicates are never retried) and skips dedup-cache marking. Offset still advances via originalMsgs. The hook context msgList also now reflects what the listener actually consumed instead of the original batch. * Info item: processedMsgs defaults to null instead of msgs, and processConsumeResult recovers (falling back to the original batch, with a warning) if some future path forgets the assignment, instead of NPE'ing. Add MessageDeduplicator.getProcessedTimestamp for test visibility and a regression test that drives ConsumeRequest.run() end-to-end on an all-duplicate batch: asserts the listener is not invoked, nothing is sent back, the ProcessQueue is drained, and cache timestamps are unchanged. Co-Authored-By: Claude <[email protected]> Report URL: https://github.com/apache/rocketmq/actions/runs/29160278480 With regards, GitHub Actions via GitBox
