[ 
https://issues.apache.org/jira/browse/HADOOP-9894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13746676#comment-13746676
 ] 

Jason Lowe commented on HADOOP-9894:
------------------------------------

Sample log output from a case where a local file was being created and it used 
stat first to ensure the file did not already exist:

{noformat}
2013-08-21 17:56:36,731 WARN  [Thread-80] util.Shell (Shell.java:run(478)) - 
Error reading the error stream
java.io.IOException: Stream closed
        at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
        at java.io.BufferedReader.readLine(BufferedReader.java:292)
        at java.io.BufferedReader.readLine(BufferedReader.java:362)
        at org.apache.hadoop.util.Shell$1.run(Shell.java:471)
{noformat}
                
> Race condition in Shell leads to logged error stream handling exceptions
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-9894
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9894
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 2.1.0-beta
>            Reporter: Jason Lowe
>
> Shell.runCommand starts an error stream handling thread and normally joins 
> with it before closing the error stream.  However if parseExecResult throws 
> an exception (e.g.: like Stat.parseExecResult does for FileNotFoundException) 
> then the error thread is not joined and the error stream can be closed before 
> the error stream handling thread is finished.  This causes the error stream 
> handling thread to log an exception backtrace for a "normal" situation.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to