The issue is probably with the order in which storm shoots processes.  All of 
the processes register a pid with the supervisor, and it shoots them in the 
order that the file system returns them, which is file system dependent, at 
least on Linux.  In all likelihood the supervisor is shooting the child process 
before it shoots the worker and the worker commits suicide as it was designed 
to do when the child process exits. - Bobby
 

     On Friday, February 20, 2015 8:58 AM, Artem K <[email protected]> 
wrote:
   

 Hi, I have a quick question. I have set up a local storm cluster on my 
machine. I have also implemented a simple topology. One of the pieces in my 
topology is asimple python multilang component. The component works fine, it 
does everything I want it to do. However, when I send a kill statement to the 
local topology, everything in my topology beings shutting down. One of the 
errors I receive is the following
29748 [Thread-23] ERROR backtype.storm.task.ShellBolt - Halting process: 
ShellBolt died.java.lang.RuntimeException: 
backtype.storm.multilang.NoOutputException: Pipe to subprocess seems to be 
broken! No output read.Serializer Exception:(Unable to capture error 
stream).....
kill: 58511: No such process29760 [main] INFO  backtype.storm.util - Error when 
trying to kill 58511. Process is probably already dead.30769 [main] INFO  
backtype.storm.util - Error when trying to kill 58511. Process is probably 
already dead.kill: 58511: No such process......
Now obviously this happens because the shell bolt has been terminated. I 
eventually want to deploy this on an actual productioncluster. So my question 
to you is, how do you manually send a shutdown signal through the STDOUT in 
order to not get thisPipe to subprocess exception. Basically, I want to 
manually close the pipe after I am for sure done with it. I have been playing 
aroundwith the code, and simply sending a print statement with "end" does not 
work. Thanks.

   

Reply via email to