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]
