You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "unbridled-41 (via GitHub)" <gi...@apache.org> on 2026/10/09 21:04:15 UTC

[PR] fix(ai): reject a non-positive reset timestamp instead of rewinding every queue [rocketmq-dashboard]

unbridled-41 opened a new pull request, #5985:
URL: https://github.com/apache/rocketmq-dashboard/pull/5985

   ### Which Issue(s) This PR Fixes
   Fixes #5984
   ### Problem / Evidence
   `GroupResetOffsetToolHandler.requireTimestamp` rejected only null, while `ResetConsumerOffsetDTO` (`@NotNull @Positive`, used with `@Valid`) rejects zero/negative - and the broker maps such a timestamp to the queue minimum, with only a WARNING in the plan:
   ```
   GroupResetOffsetToolHandlerTest: applyShouldRejectANonPositiveTimestampTest
   Expecting code to raise a throwable
   ```
   ### Root cause / Fix
   The positivity rule the REST contract enforces was never mirrored into the tool. Require a strictly positive value with the same message; the handler is the right boundary because the preview path uses the same helper, so no plan is built either.
   The published tool schema and the generated CLI catalog still describe the field without a minimum, so a client-side check is a follow-up (the server refuses the mutation either way).
   ### Priority and scoring
   **PRIORITY 55** - impact 26/40 (a destructive operation accepted from input the console refuses), blast radius 10/20 (callers that pass a placeholder), reproducibility 16/20 (pinned by the new test), maintenance value 3/20. **FIX_CONFIDENCE 80**.
   ### Tests
   `cd server && mvn -o -B -ntp test -Dtest='org.apache.rocketmq.studio.ops.ai.tool.**'` -> `Tests run: 177, Failures: 0, Errors: 0`; the new case (0 and -1) fails before the change and passes after it, asserting no broker call; `checkstyle:check` passes.
   ### Risk
   A caller that previously passed a non-positive placeholder now gets a 400 instead of a reset; the console and the REST endpoint already behaved that way.
   


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(ai): reject a non-positive reset timestamp instead of rewinding every queue [rocketmq-dashboard]

Posted by "unbridled-41 (via GitHub)" <gi...@apache.org>.
unbridled-41 commented on PR #5985:
URL: https://github.com/apache/rocketmq-dashboard/pull/5985#issuecomment-6090234073

   ### CI status of this PR
   
   `Backend Tests (Java 21)` — see the note below the list.
   
   The four remaining red jobs are red for every branch, including `rocketmq-studio` itself:
   
   - `Backend Build (Java 21)` — the `binary-license-gate` antrun step fails on a list of third-party jars (`spring-ai-*`, `swagger-ui`, `tencentcloud-sdk-*`, `zstd-jni`, ... : "missing complete upstream LICENSE/COPYING; a POM name or link is not a substitute"). This PR touches no build configuration; tracked by #5341.
   - `Frontend Build (Node 20)` / `Frontend Docker Build` — the frontend licence manifest check fails the same way on branches that do not touch `web/` at all; tracked by #5346.
   - `rmqctl Build (Go)` — `cmd` `TestMessageQueryCompletenessWarningTest` yaml subtests: `got {"items":[{"size":"3",...}]}, want {"size":3,...}`, i.e. the YAML renderer writes numbers as quoted strings where the test expects integer literals. Reproduced locally with `cd rmqctl && go test ./cmd/` from a checkout whose `rmqctl/` tree is byte-identical to `rocketmq-studio`'s, and owned by open PR #5850 ("keep yaml numbers unquoted").
   
   `Backend Tests (Java 21)` failure attribution: `ResourceOwnershipGuardTest.migrationConcurrentStartupIsIdempotentTest` — `org.h2.jdbc.JdbcSQLNonTransientException: General error: java.util.ConcurrentModificationException` — the known flaky H2 concurrency test tracked by #5302. It reproduces independently of this diff (which touches no persistence code) and the same job passes on sibling PRs of the same batch.


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(ai): reject a non-positive reset timestamp instead of rewinding every queue [rocketmq-dashboard]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #5985:
URL: https://github.com/apache/rocketmq-dashboard/pull/5985#issuecomment-6227217540

   This pull request has been automatically closed because there has been no activity for 7 days. If you would like to continue working on this, please reopen the PR with updated changes.


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(ai): reject a non-positive reset timestamp instead of rewinding every queue [rocketmq-dashboard]

Posted by "unbridled-41 (via GitHub)" <gi...@apache.org>.
unbridled-41 commented on PR #5985:
URL: https://github.com/apache/rocketmq-dashboard/pull/5985#issuecomment-6091425823

   ### Verification on the final commit (branch + commit + command results)
   
   Every command from the description re-run on a fresh worktree of this branch (`git worktree add <dir> fork/<branch>`, no local modifications), at commit `825a2be905`:
   
   | command | exit | result |
   | --- | --- | --- |
   | `cd server && mvn -o -B -ntp test -Dtest='org.apache.rocketmq.studio.ops.ai.tool.**'` | 0 | `Tests run: 177, Failures: 0, Errors: 0, Skipped: 0 · BUILD SUCCESS` |
   
   CI note: on this repository the `Backend Build` (binary-license-gate), `Frontend Build` / `Frontend Docker Build` (licence manifest) and `rmqctl Build` (YAML renderer quoting) jobs are red for every branch, trunk included; the module-level commands above are unaffected.
   


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] fix(ai): reject a non-positive reset timestamp instead of rewinding every queue [rocketmq-dashboard]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #5985: fix(ai): reject a non-positive reset timestamp instead of rewinding every queue
URL: https://github.com/apache/rocketmq-dashboard/pull/5985


-- 
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: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org