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

Amar Kamat commented on HADOOP-2512:
------------------------------------

What I meant was (rewriting a part of the Raghu's patch)
{code}
       exitCode = process.waitFor();
+      try {
+        // make sure that the error thread exits
+        errThread.join();
+      } catch (InterruptedException ie) {
+        LOG.warn("Interrupted while reading the error stream", ie);
+      }
+      completed = true;
       if (exitCode != 0) {
-         if (errMsg.length() == 0) {
-           errMsg.append("Command exit with status code " + exitCode);
-         }
+          errMsg.insert(0,"Command exit with status code " + exitCode + "\n");
         throw new IOException(errMsg.toString());
       }
-      completed = true;
{code}
Something on similar lines.  Does this make sense? 

> error stream handling in Shell executor 
> ----------------------------------------
>
>                 Key: HADOOP-2512
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2512
>             Project: Hadoop
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 0.16.0
>            Reporter: Raghu Angadi
>            Assignee: Raghu Angadi
>            Priority: Blocker
>             Fix For: 0.16.0
>
>         Attachments: HADOOP-2512.patch
>
>
> Fix a couple of issues while handling error stream in Shell (added in 
> HADOOP-2344) :
> # fix typo in {{System.getProperty("line.seperator")}}, currently it adds 
> "null" instead of "\n".
> # completed is not set to {{true}} when a process exits with an error.
> # In normal error case, it reads errMsg (to create IOException) before 
> waiting for errThread to complete, which results in in consistent error 
> message. I will attach a patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to