He-Pin opened a new pull request, #3158:
URL: https://github.com/apache/pekko/pull/3158

   ### Motivation
   Classic remoting can receive a delayed system-message ACK from an old 
association after reconnect/reset. If that stale ACK has a cumulative sequence 
number newer than the sender's current resend buffer, the old code treated it 
as a protocol violation, wrapped it as `HopelessAssociation`, and 
gated/quarantined the remote system.
   
   This fixes #3126.
   
   ### Modification
   - Treat `Ack(cumulativeAck > maxSeq)` as stale in `AckedSendBuffer` and 
return the current buffer unchanged.
   - Log and skip stale ACKs in `ReliableDeliverySupervisor` before they can be 
wrapped into `HopelessAssociation`.
   - Keep the existing `ResendUnfulfillableException` path for real 
unfulfillable NACKs.
   - Add regression coverage for empty/non-empty resend buffers, stale ACKs 
with NACKs, and valid ACK processing after a stale ACK.
   
   ### Result
   Delayed ACKs from a previous association no longer trigger quarantine for 
the current association, while normal ACK/NACK processing remains unchanged.
   
   ### Tests
   - `sbt "remote / Test / testOnly org.apache.pekko.remote.AckedDeliverySpec"` 
/ passed: 13 tests
   - `sbt checkCodeStyle` / passed
   - `scalafmt --list --mode diff-ref=origin/main` / passed: no files listed
   - `git diff --check` / passed: no output
   - subAgent review / FINAL PASS
   - `qodercli` non-interactive review, log at `/tmp/tmo-qoder-review.log` / 
PASS
   
   ### References
   Fixes #3126
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to