[ http://issues.apache.org/jira/browse/NUTCH-151?page=all ] Doug Cutting resolved NUTCH-151: --------------------------------
Fix Version: 0.8-dev Resolution: Fixed I just committed this. Thanks, Paul! > 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 > Fix For: 0.8-dev > Attachments: CommandRunner.java, CommandRunner.java.patch > > 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