Aias00 opened a new pull request, #7227: URL: https://github.com/apache/rocketmq-dashboard/pull/7227
A full oldest page of expired conversations with active runs makes the retention sweep repeatedly read the same IDs. Later idle conversations never reach deletion, even when the pass has capacity left. Exclude QUEUED/RUNNING conversations with a correlated NOT EXISTS predicate before applying SQL LIMIT. Keep the service’s active-run recheck for runs started after candidate selection, the existing batch ceiling and the oldest-first cleanup order. Fixes #7226 Validation: - New database regression covers both QUEUED and RUNNING prefixes with batch-size=1 and two expired conversations. Both cases fail on the original code (the idle conversation survives) and pass with this change; the busy conversation retains both runs and all 200 events, while the idle conversation and children are deleted. - Full AI conversation package with dev profile: **602 tests, 0 failures, 0 errors, 3 skipped** (existing workspace tests disabled on macOS). Persistence integration suite: 10 tests, all pass. - Bound Checkstyle and `git diff --check` pass. Tested with JDK 21 and H2/MySQL compatibility mode. No live MySQL/Broker or full-repository test suite was run. The existing selection-to-deletion admission race is unchanged; this fix addresses busy-page starvation. -- 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]
