[ http://issues.apache.org/jira/browse/NUTCH-151?page=all ]
Paul Baclace updated NUTCH-151: ------------------------------- Attachment: CommandRunner.java.patch Here is the patch for CommandRunner (previously, I attached the actual file). > 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 > 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