[
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