You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "Hanabi9248 (via GitHub)" <gi...@apache.org> on 2026/09/23 19:43:33 UTC

[PR] fix(rmqctl): finish reconnect initialization before sending requests [rocketmq-dashboard]

Hanabi9248 opened a new pull request, #5062:
URL: https://github.com/apache/rocketmq-dashboard/pull/5062

   ### Which Issue(s) This PR Fixes
   
   Fixes #5061
   
   ### Brief Description
   
   If the replacement `initialize` succeeds but `notifications/initialized` fails, rmqctl keeps the new session and generation. Later calls currently send requests on that incomplete session.
   
   Keep the notification pending until it succeeds, and serialize retries before letting normal messages through. A caller waiting on an older generation also completes the pending notification. If the replacement session has expired, repeat the handshake before retrying the request.
   
   This is separate from #4876, which handles a cleared session ID when taking the reconnect snapshot.
   
   ### How Did You Test This Change?
   
   Five regression cases cover successful retry, repeated HTTP 503 failures, replacement-session expiration, concurrent callers and an older-generation waiter. All five fail on the base revision and pass with this change; repeated 20 times with `-race`.
   
   - `go test -race -count=1 ./...`: passed (Windows amd64, Go 1.27.1).
   - `go vet ./...`, catalog generator `-check`, `gofmt`, `git diff --check`: passed.
   - Cross-builds for Windows, Linux and macOS, amd64 and arm64: passed.
   
   The HTTP responses are controlled through a RoundTripper while exercising the actual transport and session code. No live cluster test was run.
   
   ### Checklist
   
   - [x] One coherent change; unrelated modifications are not bundled in
   - [x] Commit subject follows Conventional Commits
   - [x] Regression tests cover the changed behavior
   - [x] New source file carries the ASF license header
   - UI translations and backend architecture checks: not applicable to this Go CLI-only change.


-- 
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(rmqctl): finish reconnect initialization before sending requests [rocketmq-dashboard]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #5062: fix(rmqctl): finish reconnect initialization before sending requests
URL: https://github.com/apache/rocketmq-dashboard/pull/5062


-- 
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(rmqctl): finish reconnect initialization before sending requests [rocketmq-dashboard]

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

   Thanks for the detailed review. I will hold the branch while you decide the order with #4876; no rebase or force-push.
   
   Agreed on the narrower motivation: this enforces the MCP 2025-11-25 initialization lifecycle and the sendMu contract. I have not demonstrated a failure against Studio Server. The intended behavior change is that an older-generation waiter also retries the pending initialized notification; if it still fails, that caller returns the handshake error without sending its own request. Later senders retry the handshake before admission.
   
   I have removed the write-only ready field and its assignments in a local revision, keeping pendingInitialized as the admission state. The studio package tests and 20 runs with -race pass on Windows. That revision is not pushed while the ordering decision is pending. I will keep the transport-based regression tests and resolve overlap if #4876 lands first.


-- 
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(rmqctl): finish reconnect initialization before sending requests [rocketmq-dashboard]

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

   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