Problems with the Resume strategy when using actors that have child actors
Reported by user:
"I have the following setup: A supervisor actor S, with a child actor A, where A in turn has a worker child actor W.
S is set up to use a Resume strategy for all errors. When A throws an exception while processing a message, the supervisor strategy in S is called and A is resumed. However, W, being a child actor of A, is still suspended and no longer processes messages.
The above behavior is observed when using Akka 2.0.5. Running on Akka 2.1.0, W is resumed and everything works as expected."
"I have the following setup: A supervisor actor S, with a child actor A, where A in turn has a worker child actor W.
S is set up to use a Resume strategy for all errors. When A throws an exception while processing a message, the supervisor strategy in S is called and A is resumed. However, W, being a child actor of A, is still suspended and no longer processes messages.
The above behavior is observed when using Akka 2.0.5. Running on Akka 2.1.0, W is resumed and everything works as expected."
Leave a comment
file:cGE0c0yaOr4PTSacwqjQYw
Resume Reproduce App
Resume Reproduce App
The attached file will reproduce the bug on Akka 2.0.5. It can easily be changed (see commented out sections) to run it on Akka 2.1.0 with a change in behavior.
Expected behavior: Messages keep getting published back to "Supervisee".
Found (Akka 2.0.5): Messages stop being processed as RequestSource is suspended
Found (Akka 2.1.0): As expected.
Expected behavior: Messages keep getting published back to "Supervisee".
Found (Akka 2.0.5): Messages stop being processed as RequestSource is suspended
Found (Akka 2.1.0): As expected.