RockteMQ-AI commented on issue #11367: URL: https://github.com/apache/rocketmq/issues/11367#issuecomment-6121190025
**Issue Evaluation** Category: `type/bug` | Status: **Confirmed** | Severity: **High** The reported issue has been verified against the current codebase. **Root Cause:** `ProxyAdminGrpcService.resetGroupOffset` reuses the best-effort `queryAllBrokers` helper for a mutation operation. `queryAllBrokers` silently drops partial failures — it only propagates errors when **all** brokers fail. For a state-mutating operation like offset reset, this means a partial success (some brokers reset, others not) returns `OK` with no indication to the caller. **Key evidence:** - `queryAllBrokers` (lines 273-313) is designed for reads (per its javadoc), not mutations - `ResetGroupOffsetResponse` proto has only a `status` field — no way to report partial results - The admin tool `DefaultMQAdminExtImpl.resetOffsetNewConcurrent` correctly tracks per-broker success/failure, showing the proxy path is inconsistent - Tests cover all-success and total-failure but not partial failure **Impact:** Proxy v2 admin API `ResetGroupOffset` — operators may believe all brokers were reset when only some were, leading to duplicate or skipped messages on unaffected brokers. Note: PR #11368 appears to address this by adding a `requireAllBrokers` mode for mutations. --- *Automated evaluation by github-manager-bot* -- 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]
