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]

Reply via email to