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

   ### Motivation
   A classic PersistentActor enters an unbounded restart loop when its 
RecoveryCompleted handler throws. Issues #3234 and #3249 report the same 
trigger, control flow, symptom, and expected behavior.
   
   ### Modification
   - Treat NonFatal exceptions from the classic RecoveryCompleted handler as 
recovery failures.
   - Invoke onRecoveryFailure(cause, None), stop the actor, and still return 
the recovery permit once.
   - Replace the restart-loop expectation with a directional stop-and-permit 
regression test.
   - Document the RecoveryCompleted failure behavior.
   
   ### Result
   The actor reports the recovery failure once and stops instead of restarting 
indefinitely, while recovery capacity is released for waiting actors.
   
   ### Tests
   - sbt "persistence / Test / testOnly 
org.apache.pekko.persistence.RecoveryPermitterSpec" — red before the fix; 6 
passed after the fix
   - sbt "persistence / Test / test" — 62 passed
   - sbt headerCreateAll — passed
   - sbt +headerCheckAll — passed for Scala 2.13.18 and 3.3.8
   - sbt checkCodeStyle — passed
   - sbt docs/paradox — passed with existing duplicate-anchor warnings
   - sbt validatePullRequest — completed in 25m39s; affected cluster-sharding 
multi-JVM tests and 368 docs ScalaTests passed; overall task failed on two 
unchanged baseline/environment tests: LeveldbJournalNativeSpec cannot load 
leveldbjni-all 1.8 on macOS ARM64, and IntegrationDocTest references the 
invalid existing mailbox class pekko.dispatch.UnboundedMailbox
   - scalafmt --list --mode diff-ref=origin/main — passed
   - git diff --check — passed
   - Qoder stdout review — no must-fix findings
   
   ### References
   Fixes #3234
   Fixes #3249


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