Before I really dig into things, I want to see if this makes any sense.
I'm running 0.92, and still fairly a novice.
Using multilang to bridge into existing BL code (in php, don't ask). I'm
seeing part of my topology grind to a halt in the wild. My theory is it
has something with php failure modes.
If I'm running a topology and I kill a "managed" php process, everything
about that part of the topology stops, but then things respwan and life
goes on. Looking at the logs, I can see Java detects broken STDIN/OUT
pipes.
But, if the php OOMs, then this part of the topology "locks up" for 20
minutes (where does that come from???). I *think* Java has no idea the
managed process died. Looking through the storm source, I can only imagine
it's something about the Storm <-> java.lang.Process bridge (spread across
ShellBolt, ShellProcess, and JsonSerializer).
Does this make any sense? I had been using binaries, but getting up to
speed on compiling storm now to debug this manually...
I'm able to quickly force the issue by running this in a php bolt:
while(true) {
$tmp[] = 1;
}
will