GitHub user HeartSaVioR opened a pull request:
https://github.com/apache/storm/pull/286
STORM-513 check heartbeat from multilang subprocess
Related issue link : https://issues.apache.org/jira/browse/STORM-513
It seems that ShellSpout and ShellBolt doesn't check subprocess, and set
heartbeat with their only states.
Subprocess could hang, but it doesn't affect ShellSpout / ShellBolt. It
just stops working on tuple.
It's better to check heartbeat from subprocess, and suicide if subprocess
stops working.
* Spout
* ShellSpout sends "next" to subprocess continuously
* subprocess sends "sync" to ShellSpout when "next" is received
* so we can treat "sync", or any messages to heartbeat
* Bolt
* ShellBolt sends tuples to subprocess if it's available
* so we need to send "heartbeat" tuple
* subprocess sends "sync" to ShellBolt when "heartbeat" tuple is received
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/HeartSaVioR/storm STORM-513
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/storm/pull/286.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #286
----
commit ca5874cdf11af8d835335d228b643f28aeb3f9c3
Author: Jungtaek Lim <[email protected]>
Date: 2014-10-08T13:48:01Z
STORM-513 check heartbeat from multilang subprocess
* Spout
** ShellSpout sends "next" to subprocess continuously
** subprocess sends "sync" to ShellSpout when "next" is received
** so we can treat "sync", or any messages to heartbeat
* Bolt
** ShellBolt sends tuples to subprocess if it's available
** so we need to send "heartbeat" tuple
** subprocess sends "sync" to ShellBolt when "heartbeat" tuple is
received
commit 1a0d4bdd735ba0ade42f6777a4c47affec931557
Author: Jungtaek Lim <[email protected]>
Date: 2014-10-08T14:06:24Z
Fix mixed tab / space, remove FIXME
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---