celluloid / reel

UNMAINTAINED: See celluloid/celluloid#779 - Celluloid::IO-powered web server
https://celluloid.io
MIT License
596 stars 87 forks source link

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

Closed digitalextremist closed 11 years ago

digitalextremist commented 11 years ago

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.

digitalextremist commented 11 years ago

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

digitalextremist commented 11 years ago

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

digitalextremist commented 11 years ago

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.