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]

Reply via email to