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

   ### Motivation
   
   Classic remoting suspends the original read-only reader while a passive 
connection takes over. Payloads arriving on the suspended reader were 
discarded, so they were permanently lost when the replacement connection failed 
and the original reader resumed.
   
   ### Modification
   
   - Add a bounded `pekko.remote.classic.passive-connection-buffer-size` 
setting, defaulting to 128 messages.
   - Buffer unreliable payloads while the original reader is suspended; 
reliable payloads continue to rely on retransmission.
   - Track whether a replacement reader dispatched a message. Replay the 
original buffer only when it is ordering-safe; otherwise reconnect the writer 
while preserving reliable-delivery sequence and resend state.
   - Add focused coverage for replay, overflow, reliable-message handling, 
cross-connection ordering, reconnect state, configuration, and binary 
compatibility.
   
   ### Result
   
   Failed passive handoffs recover buffered unreliable payloads when safe, 
without replaying older messages after a replacement has already delivered 
newer ones or losing buffered system messages during reconnect.
   
   ### Tests
   
   - `sbt "remote / Test / testOnly 
org.apache.pekko.remote.classic.RemotingSpec"` — passed (22 tests)
   - `sbt "remote / Test / testOnly 
org.apache.pekko.remote.ReliableDeliverySupervisorSpec"` — passed (5 tests)
   - `sbt "remote / Test / testOnly org.apache.pekko.remote.RemoteConfigSpec"` 
— passed (6 tests)
   - Scala 3.3.8 focused `RemotingSpec` and `ReliableDeliverySupervisorSpec` 
tests — passed
   - `sbt +mimaReportBinaryIssues` — passed for Scala 2.13 and Scala 3.3
   - `sbt headerCreateAll` — passed
   - `sbt +headerCheckAll` — passed
   - `sbt checkCodeStyle` — passed
   - `sbt docs/paradox` — passed (existing duplicate-anchor warnings only)
   - `scalafmt --list --mode diff-ref=origin/main` — passed
   - `sbt sortImports` — not completed because the existing Scalafix/scala-meta 
setup raised `NoSuchMethodError`; unrelated generated changes were reverted
   - `sbt validatePullRequest` — not run per requester
   
   ### References
   
   Fixes #3208
   


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