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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to