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

Reply via email to