zmuxuny opened a new issue, #4532: URL: https://github.com/apache/rocketmq-dashboard/issues/4532
### Before Creating the Bug Report - [x] I searched open/closed issues and PRs for Tencent ACL role pagination, `DescribeRoleList`, `TotalCount`, incomplete pages, and false not-found results. - [x] I reproduced the behavior on current `master` (`d50ffecc9d7e8f8f46da64198831bd7952e6974e`). ### Problem Tencent ACL role discovery treats any empty or short `DescribeRoleList` page as the end of the role catalog before reconciling it with `TotalCount`. The duplicated pagination loop is used by `listUsers`, `listRules`, and `findRole`. If Tencent reports a known total that says more roles remain but the current page is short/empty, Studio silently accepts an incomplete ACL inventory. ### Impact ACL user/rule pages can omit real roles while looking complete. More importantly, `updateUser` calls `findRole` when permissions are omitted so it can preserve existing values; an incomplete page can therefore turn a provider-data failure into `404 ACL user not found`, blocking a valid permission update and sending the operator toward the wrong diagnosis. ### Expected Behavior - When a non-negative `TotalCount` proves roles remain but the current page is short or empty, fail closed with a 502-style `BusinessException`. - Preserve genuine empty/final pages. - Preserve the current short-page fallback when `TotalCount` is missing or negative/unknown. - Do not change Tencent ACL mutation payloads or permissions. ### Red Reproduction On unmodified master, three focused regressions use `TotalCount=2` with one returned role: - `listUsers` is required to fail closed, but returns one user; - `listRules` is required to fail closed, but returns one rule; - `updateUser` searches for a role that could still be on the missing page and currently returns 404 instead of 502. `TencentAclServiceTest`: **15 tests, exactly 3 failures**; the other 12 tests remain green. Checkstyle reports 0 violations. AI-assisted source audit and regression authoring; fail-before was executed locally with Java 21. -- 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]
