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

   ### Motivation
   
   Backport of #3158 to 1.7.x.
   
   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.
   
   See also: akka/akka-core#24654 (same bug in Akka, closed without fix in 
2019).
   
   ### 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 (main branch)
   - Cherry-pick applied cleanly with no conflicts
   
   ### References
   
   Fixes #3126. Backport of #3158.


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