The GitHub Actions job "Misspell Check" on 
rocketmq.git/fix/queue-mapping-clean-null-remote-items has succeeded.
Run started by GitHub user Felix-Gong (triggered by RongtongJin).

Head commit for run:
947ad6dfc7beb07e0287d971abd304996b0af2cf / Felix-Gong 
<[email protected]>
[ISSUE #11481] fix(broker): do not abort the queue-mapping clean pass on a 
missing remote queue

cleanItemListMoreThanSecondGen() validates, for every queue whose leader
moved, that the new leader agrees. It reads the new leader's hosted
queues with get(qId) and calls isEmpty() on the result unconditionally:
when the remote broker's mapping does not contain that queue id at all —
the transient state this service exists to reconcile — the read returns
null and the pass dies with a NullPointerException.

The exception is swallowed by the per-topic catch, so the visible damage
is silent: every remaining queue of that topic is skipped for this cycle,
the mapping is left half-cleaned, and the failure repeats every five
minutes.

Treat a missing remote queue as "not confirmed yet" and continue, which
is how the surrounding reads already handle absent data.

Red/green: remoteLeaderMissingTheQueueIdDoesNotAbortTheRestOfTheTopic
fails on the old code (the second queue is never removed because the NPE
aborts the pass) and passes with the null guard. Broker module: 815
tests, the 7 failures are pre-existing (RocksDB/filter/schedule/pop-lite/
BrokerOuterAPI) and reproduce identically with this change stashed.

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

With regards,
GitHub Actions via GitBox

Reply via email to