Currently, ShellBolt determines that subprocess is hang if there're no message from subprocess within SUPERVISOR_WORKER_TIMEOUT_SECS.
Since ShellBolt treats all kinds of message to heartbeat (
STORM-742), we get rid of heartbeat issue that heartbeat tuple cannot processed in time because too many other BoltMsgs waiting.
But it doesn't cover two scenario,
- STORM-758: Subprocess doesn't send anything - emit, ack, fail - so ShellBolt has to rely on heartbeat tuple. It is valid for non-ACK mode.
- Each (or some kind of) tuple takes very long time to process. For now it should be shorter than SUPERVISOR_WORKER_TIMEOUT_SECS.
It could be better to have multilang subprocess timeout for clarity.