You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "unbridled-41 (via GitHub)" <gi...@apache.org> on 2026/10/09 20:07:39 UTC

[PR] fix(group): union a proxy-connected group's clients across every proxy [rocketmq-dashboard]

unbridled-41 opened a new pull request, #5958:
URL: https://github.com/apache/rocketmq-dashboard/pull/5958

   ### Which Issue(s) This PR Fixes
   
   Fixes #5957
   
   ### Problem / Evidence
   
   ```java
   // ProxyConsumerResolver.resolveConsumerConnectionStatus (before)
   if (result.connection() != null) {
       return ConsumerConnectionResolution.available(result.connection());
   }
   ```
   
   ```
   ProxyConsumerResolverTest#resolveConsumerConnectionStatusShouldUnionClientsFromEveryProxyTest
   Expecting actual ... (only the first proxy's client and topic)
   ```
   
   Each proxy knows only its own channels, so a group whose members are spread over several proxies was reported with one proxy's connection set, subscription table and model as the whole inventory. The group list (`instances`, `onlineInstances`), the group detail read and the AI group-detail verdict all consume that value, and the sibling client scan in the same package already unions every proxy (`RocketMQClientProvider.findConsumerConnections`, pinned by `directConsumerOnAnotherBrokerInTheClusterRemainsVisibleTest`).
   
   ### Root cause / Fix
   
   An early return where the data is per-proxy. Ask every proxy and merge: connections deduped by client id and address, subscription tables unioned (first wins per topic), the group-level model/consume-type taken from the first non-null - while keeping the existing accounting ("no proxy knows the group" stays a known-offline answer, an unreadable proxy keeps the resolution unavailable).
   
   ### Priority and scoring
   
   **PRIORITY 68** — impact 26/40 (under-reported online clients/subscriptions with a plausible value, and the AI verdict reasons on the subset), blast radius 14/20 (every proxy-connected group), reproducibility 16/20 (pinned by the new test; needs a multi-proxy group in practice), maintenance value 12/20 (aligns the two proxy reads in one package).
   
   **FIX_CONFIDENCE 82** — no new RPC kinds; the same calls, plus a merge. The extra queries are bounded by the discovered proxy list (cached per request) and the existing 2 s timeout.
   
   ### Tests
   
   `cd server && mvn -o -B -ntp test -Dtest='ProxyConsumerResolverTest'` -> `Tests run: 7, Failures: 0, Errors: 0`; `-Dtest='RocketMQMetadataProviderTest,RocketMQClientProviderTest'` -> `Tests run: 91, Failures: 0, Errors: 0`.
   
   | Test | Before | After |
   |---|---|---|
   | `resolveConsumerConnectionStatusShouldUnionClientsFromEveryProxyTest` | FAIL (first proxy only) | PASS (both clients, both topics) |
   | `resolveConsumerConnectionStatusShouldDistinguishOfflineFromProxyFailureTest` | PASS | PASS (accounting unchanged) |
   
   `mvn -o -B -ntp checkstyle:check` passes.
   
   ### Risk
   
   A group that lives on several proxies now costs one query per proxy instead of stopping at the first answer; the proxy list is already cached per request and the existing timeout applies to each call.


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(group): union a proxy-connected group's clients across every proxy [rocketmq-dashboard]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #5958: fix(group): union a proxy-connected group's clients across every proxy
URL: https://github.com/apache/rocketmq-dashboard/pull/5958


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(group): union a proxy-connected group's clients across every proxy [rocketmq-dashboard]

Posted by "unbridled-41 (via GitHub)" <gi...@apache.org>.
unbridled-41 commented on PR #5958:
URL: https://github.com/apache/rocketmq-dashboard/pull/5958#issuecomment-6091391930

   ### Verification on the final commit (branch + commit + command results)
   
   Every command from the description re-run on a fresh worktree of this branch (`git worktree add <dir> fork/<branch>`, no local modifications), at commit `d55dd50ae6`:
   
   | command | exit | result |
   | --- | --- | --- |
   | `cd server && mvn -o -B -ntp test -Dtest='ProxyConsumerResolverTest'` | 0 | `Tests run: 7, Failures: 0, Errors: 0, Skipped: 0 · BUILD SUCCESS` |
   
   CI note: on this repository the `Backend Build` (binary-license-gate), `Frontend Build` / `Frontend Docker Build` (licence manifest) and `rmqctl Build` (YAML renderer quoting) jobs are red for every branch, trunk included; the module-level commands above are unaffected.
   


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(group): union a proxy-connected group's clients across every proxy [rocketmq-dashboard]

Posted by "unbridled-41 (via GitHub)" <gi...@apache.org>.
unbridled-41 commented on PR #5958:
URL: https://github.com/apache/rocketmq-dashboard/pull/5958#issuecomment-6090245723

   ### CI status of this PR
   
   `Backend Tests (Java 21)` — **pass**; the change-specific commands and their results are in the Tests section of the description.
   
   The four remaining red jobs are red for every branch, including `rocketmq-studio` itself:
   
   - `Backend Build (Java 21)` — the `binary-license-gate` antrun step fails on a list of third-party jars (`spring-ai-*`, `swagger-ui`, `tencentcloud-sdk-*`, `zstd-jni`, ... : "missing complete upstream LICENSE/COPYING; a POM name or link is not a substitute"). This PR touches no build configuration; tracked by #5341.
   - `Frontend Build (Node 20)` / `Frontend Docker Build` — the frontend licence manifest check fails the same way on branches that do not touch `web/` at all; tracked by #5346.
   - `rmqctl Build (Go)` — `cmd` `TestMessageQueryCompletenessWarningTest` yaml subtests: `got {"items":[{"size":"3",...}]}, want {"size":3,...}`, i.e. the YAML renderer writes numbers as quoted strings where the test expects integer literals. Reproduced locally with `cd rmqctl && go test ./cmd/` from a checkout whose `rmqctl/` tree is byte-identical to `rocketmq-studio`'s, and owned by open PR #5850 ("keep yaml numbers unquoted").


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(group): union a proxy-connected group's clients across every proxy [rocketmq-dashboard]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #5958:
URL: https://github.com/apache/rocketmq-dashboard/pull/5958#issuecomment-6227224742

   This pull request has been automatically closed because there has been no activity for 7 days. If you would like to continue working on this, please reopen the PR with updated changes.


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org