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]
