celluloid/reel

Reel::RackWorker reincarnation not happening. Dead Actors persist.

Closed this issue · 3 comments

Intentionally murdering an actor as with the following gist:
https://gist.github.com/digitalextremist/5477245

... now means all further hits to that endpoint are not responsive.

At first this causes a stack trace, as shown, but then it just goes into silence, being dead and not saying it's dead. In the use case, it was triggered by ws:// but http:// is fine too.

nil << 1 kills Reel for good.

@halorgium found that if include Celluloid is called from within a class mixing in Sinatra::Base that is what causes the behavior. Not reel Reel issue.

Still showing the behavior actually, but not showing the Dead Actor error in the console.

Need to get to completely reproducible scenario. For now, it seems include Celluloid along with Sinatra::Base is what causes the Dead Actor portion, but there is something still hindering the workers from responding after an error. Will dig deeper and post a repo of a repro if I can isolate it, or at least rule out my environment.