zmuxuny opened a new pull request, #5058: URL: https://github.com/apache/rocketmq-dashboard/pull/5058
### Which Issue(s) This PR Fixes - Fixes #5057 ### Brief Description `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. 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 still use the existing fast path. ### How Did You Test This Change? - Added a controlled first-start failure and recovery regression. Before this fix, its replacement client was never started; after the fix, the failed candidate is shut down and the next lookup initializes the replacement. - Added a concurrent first-use regression that holds startup pending while a second proxy query arrives, then verifies both queries use the client only after startup completes. - `cd server && mvn -B -ntp -Dtest=ProxyConsumerResolverTest,RocketMQAdminClientImplTest,RocketMQConsumerDiagnosticsProviderTest test` — 89 tests passed; Checkstyle passed. - Reran `ProxyConsumerResolverTest` after the final assertion change — 8 tests passed. - `git diff --check` — passed. ### Checklist - [x] One coherent bug fix; no unrelated changes - [x] Conventional commit subject - [x] Regression tests added with `...Test` method names - [x] No new UI text, external API contract, or source files -- 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]
