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

   > Resubmission of #5203 — the original PR and its linked issue were closed 
by the repo's 7-day stale bot while awaiting review, not because the change was 
rejected. The fix is rebased unchanged onto the current `rocketmq-studio` head 
(5e4c39b0) and the linked issue is still reproducible on trunk.
   
   ### Which Issue(s) This PR Fixes
   
   - Fixes #3167
   
   ### Brief Description
   
   The DLQ group list no longer waits for one `examineTopicStats` RPC per group 
serially: the page's topics fan out to a bounded daemon pool (8 threads, the 
same shape as the consumer-group live-stats enrichment), each row keeps its own 
`UNAVAILABLE` degradation on failure, and a row that misses the 10-second 
deadline is cancelled and reported as `UNAVAILABLE` instead of blocking the 
page — so page latency tracks the slowest single call rather than the sum of 
all calls. On the frontend, the group search is debounced (300 ms, the instance 
page's pattern): the input still updates per keystroke, but the query runs 
against a debounced copy, so typing a word fires one request instead of one per 
character.
   
   ### How Did You Test This Change?
   
   Run on the branch (`a1e29c27`, based on `master` @ `0228dad5`):
   
   ```
   cd server && mvn -B -ntp '-Dtest=RocketMQDLQProviderTest' test
   Tests run: 40, Failures: 0, Errors: 0, Skipped: 0 — BUILD SUCCESS
   
   cd web && npm test -- DLQPage --run
   Test Files  1 passed (1)
        Tests  22 passed (22)
   
   cd web && npm run lint
   0 errors (11 pre-existing warnings in unrelated files)
   ```
   
   New coverage: the provider test stubs `examineTopicStats` with a 
`CyclicBarrier(3)` — the barrier only releases when all three stats calls are 
in flight simultaneously, so a serial implementation would trip the await 
timeout and surface `UNAVAILABLE` rows, while the parallel one returns three 
`EMPTY` rows (the assertion pins the concurrent behaviour); the page test types 
`order` into the search and asserts exactly one request fires for the whole 
word once the debounce settles. The existing serial-behaviour tests (per-topic 
failure, empty status, pagination, filtering, stale-response guards) all keep 
passing unchanged.
   
   ### Checklist
   
   - [x] One coherent change; unrelated modifications are not bundled in
   - [x] Commit subject follows Conventional Commits
   - [x] Tests added or updated for non-trivial changes, test methods named 
`...Test`
   - [x] New UI text has both Chinese and English entries under `web/src/i18n/` 
(no new UI text in this change)
   - [x] Architecture constraints stay green (`mvn test` runs the ArchUnit 
checks)
   - [x] New source files carry the ASF license header
   - [ ] Documentation touched where behaviour changed (README / `docs/` / 
in-app help)
   
   


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