I was wondering if there is a way to force a graceful failure for a multilang Bolt.
Basically, I have a web app written in PHP (that's never going to change unfortunately). It has highly parallelizable backend processing (also written in PHP of course to reuse the biz logic) I used to self manage (e.g. running N PHP processes across M machines). Wrapping this system in Storm simplifies my IT world. So far so good. But the PHP code has memory leaks. Previously I didn't care, I just had the php restart itself on OOM failure. But, in Storm things keep grinding to a halt. I started using Storm in 0.92 and hit one bug (I forgot case #, but basically the ShellBolt wouldn't die even though the managed PHP process did, eventually starving the cluster). I'm trying 0.93-rc1 and I hit another bug (STORM-404 that solves STORM-329... I think...). I'm wondering if there is a way to have PHP terminate itself in a controlled way that allows Storm to quickly heal itself (since I can have PHP watch itself in terms of memory usage). Looking at the multilang protocol, I don't see a "stop" concept. And, since ShellBolt "pushes" to PHP, I *think* calling exit() will be no different than OOM'ing (as both just break the STDIN/STDOUT pipes), other than the status code returned. Yes, in parallel I'm trying to solve all memory leaks, but that's looking to be a big chore. And, maybe I'm just getting unlucky on hitting edge cases on Storm grinding to a halt? will
