He-Pin opened a new pull request, #3175: URL: https://github.com/apache/pekko/pull/3175
### Motivation `SystemMessageDelivery.notify()` only compared the `Address` portion of incoming ACK/NACK messages, ignoring the UID carried in `UniqueAddress`. When a remote node restarts and obtains a new UID, a delayed ACK from the previous incarnation (same address, different UID) could pass the check and incorrectly clear the unacknowledged buffer — causing system messages to be silently dropped and never retransmitted. This is the Artery counterpart of the same-class fix already applied to Classic remoting (#3160). ### Modification - Add `isFromCurrentRemote()` helper that checks the full `UniqueAddress` (address + UID) against the association's known `uniqueRemoteAddress` - Falls back to address-only matching when `uniqueRemoteAddress` is not yet established (pre-handshake), preserving existing behavior - Add directional test that injects a stale ACK from a previous incarnation and verifies it is rejected ### Result Stale ACKs from previous remote incarnations are rejected, preventing incorrect removal of system messages from the resend buffer. ### Tests - `sbt "remote / Test / testOnly org.apache.pekko.remote.artery.SystemMessageDeliverySpec"` — all 9 tests pass (including new `"be ignored when ACK is from stale remote incarnation"`) ### References Fixes #3174, Refs #3160 -- 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]
