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]

Reply via email to