yyqdbngt opened a new issue, #2429:
URL: https://github.com/apache/rocketmq-dashboard/issues/2429
## Problem
The Apache provider's read-only consumer diagnostics call
`ensureRetryTopicExists` before reading group progress or subscriptions. When
`%RETRY%<group>` has no route, a GET request creates the retry topic on every
broker through `createAndUpdateTopicConfig`.
This means a reader opening consumer diagnostics can mutate broker metadata.
Per-broker creation failures are also logged and swallowed, so a read can leave
a partially-created route across the cluster.
## Reproduction
1. Use a valid consumer group whose retry topic has not yet been created.
2. Call `GET /api/groups/{group}/progress` or `/subscriptions` as a
read-only user.
3. Observe `createAndUpdateTopicConfig` calls for `%RETRY%<group>` on broker
masters.
## Expected behavior
GET diagnostics must not create or update topics. Missing retry routes
should be handled as an empty/offline diagnostic state or queried through a
non-mutating fallback. Topic creation, if required at all, must remain an
explicit authorized mutation.
## Suggested validation
Mock `MQAdminExt` with a missing retry route and assert
progress/subscription reads never invoke `createAndUpdateTopicConfig`, while
existing-route diagnostics continue to work.
--
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]