zmuxuny opened a new pull request, #5255: URL: https://github.com/apache/rocketmq-dashboard/pull/5255
### Which Issue(s) This PR Fixes - Fixes #5057. ### Problem `ProxyConsumerResolver` marked its Netty remoting client started before `start()` completed. A failed first start left the flag true, so later proxy diagnostics reused an unstarted client without retrying. A concurrent caller could also use the client while startup was still in progress. ### Changes Initialize under the resolver monitor and publish the client and started flag only after `start()` succeeds. Dispose of a failed candidate so the next request creates a fresh client. Successful lookups retain the existing fast path. ### Previous Submission This replaces #5058, which the inactivity bot closed after seven days without activity. The original PR retains the earlier context and regression-test history. The issue remains open and the fix is still needed. The original branch was refreshed onto `rocketmq-studio@a460673f`, preserving upstream changes. Tested head: `ccd9f08adad29bb4325942743b4caba62c12a187`. ### How Did You Test This Change? Validation rerun on the refreshed branch on 2026-10-01: - `cd server && mvn -B -ntp -Dtest=ProxyConsumerResolverTest,RocketMQAdminClientImplTest,RocketMQConsumerDiagnosticsProviderTest test`: **99 passed** (8 resolver, 80 admin client, 11 diagnostics provider); Checkstyle passed. Local execution used the Mockito Java agent required by the installed JDK. - A controlled first-start failure and recovery regression verifies that the failed candidate is shut down and the next lookup starts a replacement. Before the fix, that replacement was never started. - A concurrent first-use regression holds startup pending while a second proxy query arrives, then verifies that both queries use the client only after startup completes. - `git diff --check`: passed. These are focused backend results, not a full-suite pass. Full CI is pending for this refreshed head. Known unrelated upstream frontend blockers include `MetricsExplorer.test.tsx:516` TS2353 and the separate final-artifact license gate in #5019; this backend fix does not alter those paths. The refreshed base includes #5020 and #5029. ### Checklist - [x] One coherent bug fix; no unrelated changes - [x] Conventional Commit subjects - [x] Failure recovery and concurrent first-use regressions - [x] No new UI text, external API contract, or source files - [ ] Full CI is green -- 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]
