zmuxuny opened a new issue, #4498:
URL: https://github.com/apache/rocketmq-dashboard/issues/4498

   ### Before Creating the Bug Report
   
   - [x] I searched open/closed issues and pull requests and found no existing 
fix for this failure mode.
   - [x] This reproduces on current `master` 
(`987b748e8f4f421c5cd3c4c4e51a064cc7e59f18`).
   
   ### Problem
   
   `AliyunClientFactory.call` treats an SDK future that completes normally as 
success. Several Aliyun mutation methods then discard the returned response 
entirely. The pinned RocketMQ 5.x SDK models these APIs with explicit 
business-result fields (`success`, and for resource mutations `data`), so a 
completed response with `success=false` / `data=false` is currently reported by 
Studio as a successful mutation.
   
   Affected current-master paths are:
   - Topic create / update / delete;
   - Consumer Group create / delete;
   - consumer-offset reset.
   
   The first five response bodies expose `Boolean success` and `Boolean data`; 
`ResetConsumeOffsetResponseBody` exposes `Boolean success`.
   
   ### Impact
   
   This creates false control-plane success. Studio can update its UI and write 
a SUCCESS audit entry even though the managed Aliyun resource was not changed. 
For offset reset this is especially dangerous: an operator can believe a 
consumer position was moved when the provider reported failure.
   
   ### Expected behavior
   
   Each Aliyun mutation must validate the response body before Studio reports 
success:
   - null/incomplete response => 502;
   - `success != true` => 502 with the provider code/message when available;
   - Topic/Group resource mutations also require `data == true`;
   - reset-offset requires `success == true` (its response has no `data` field).
   
   SDK exceptional completions should continue through the existing 
`AliyunClientFactory` error mapping. No frontend contract change is required.
   
   ### Verification plan
   
   Add deterministic provider tests that return normally completed SDK 
responses with unsuccessful business bodies and prove the unmodified provider 
currently returns normally. Then make those same cases fail closed, while 
preserving successful mutation request mapping and exception behavior.
   
   AI-assisted source audit; SDK response signatures were checked against the 
pinned `alibabacloud-rocketmq20220801:5.0.8` jar.
   


-- 
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