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]

Reply via email to