CommandRunner can hang after the main thread exec is finished and has 
inefficient busy loop
-------------------------------------------------------------------------------------------

         Key: NUTCH-151
         URL: http://issues.apache.org/jira/browse/NUTCH-151
     Project: Nutch
        Type: Bug
  Components: indexer  
    Versions: 0.8-dev    
 Environment: all
    Reporter: Paul Baclace


I encountered a case where the JVM of a Tasktracker child did not exit after 
the main thread returned; a thread dump showed only the threads named STDOUT 
and STDERR from CommandRunner as non-daemon threads, and both were doing a 
read().

CommandRunner usually works correctly when the subprocess is expected to be 
finished before the timeout or when no timeout is used. By _usually_, I mean in 
the absence of external thread interrupts.  The busy loop that waits for the 
process to finish has a sleep that is skipped over by an exception; this causes 
the waiting main thread to compete with the subprocess in a tight loop and 
effectively reduces the available cpu by 50%.



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
Nutch-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nutch-developers

Reply via email to