tju-yxq opened a new pull request, #3044:
URL: https://github.com/apache/rocketmq-dashboard/pull/3044

   ## What is the purpose of the change
   
   Instance resource counts are loaded on worker threads with a shared 
three-second deadline. The workers currently mutate `InstanceVO` directly, so a 
vendor call that ignores cancellation can finish after `listInstances` returns 
and change the already-returned row from unavailable to available. The fixed 
thread pool also uses an unbounded queue, allowing repeated refreshes to 
accumulate work behind slow provider calls.
   
   ## What changed
   
   - add a bounded `InstanceResourceCountRunner` with a fixed worker count and 
bounded queue
   - compute topic/group counts as detached values and apply them only when the 
lookup completed within the batch deadline
   - cancel and purge unfinished tasks after timeout or caller interruption; 
saturated submissions degrade only their own rows
   - clear stale count values when a refresh fails instead of returning old 
numbers with an unavailable flag
   - keep result application in input order and preserve the caller interrupt 
status
   - add deterministic tests for late completion, queue saturation, shared 
deadlines, concurrency, ordering, failures, null results, and interruption
   
   ## Verification
   
   - regression test reproduced the pre-fix behavior: after the list request 
timed out, releasing an interrupt-ignoring provider changed the returned row 
back to available
   - `mvn -q '-Dtest=InstanceResourceCountRunnerTest,InstanceServiceTest' test` 
(86 tests)
   - `mvn -q checkstyle:check`
   - full server suite: `mvn -DskipTests=false test` (1,968 tests, 0 failures, 
0 errors)
   
   Closes #3043


-- 
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