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]