The GitHub Actions job "CI" on rocketmq-dashboard.git/fix/dlq-resend-ownership 
has failed.
Run started by GitHub user lizhimins (triggered by lizhimins).

Head commit for run:
be4dcbb2c7ca65c9ad8db1ce1d3ceae23fa3d6dc / unbridled-41 
<[email protected]>
fix(dlq): confine a resend destination to the dead-letter topic's cluster

validateResendTargetTopic asks the NameServer whether the destination topic
exists - fetchAllTopicList() returns every topic of every cluster registered on
that endpoint - and then the resend sends through the instance's producer,
which routes by topic name across the same endpoint. On a NameServer that
serves several clusters (a documented topology: one instance per cluster, one
NameServer behind all of them) an explicit targetTopic that exists only in a
sibling cluster therefore passes validation and the replayed messages are
published into that other cluster, while the API and the audit record report
success. Nothing in the path checks the route or the resource ownership that
every sibling write (send, offset reset, direct consume) enforces through
ApacheWriteTargetResolver.requireTopicRoute.

Compare the destination's route with the dead-letter topic's and reject a
mismatch with 409. Only a resolvable route can prove the mismatch, so an
unresolvable one is still left to the send itself to fail.

Tested: RocketMQDLQProviderTest, 46 passed; the new regression fails on the
pre-fix code; checkstyle clean.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37913487539

With regards,
GitHub Actions via GitBox

Reply via email to