[
https://issues.apache.org/jira/browse/HADOOP-2512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555540#action_12555540
]
Amar Kamat commented on HADOOP-2512:
------------------------------------
1) Sorry for the typo.
2) The way the Exception message is composed should be changed. Basically its
composed of
- Error stream output
- Exit code error message
So
{code}
if (errMsg.length() == 0) {
errMsg.append("Command exit with status code " + exitCode);
}
{code}
should be changed to
{code}
if (errMsg.length() == 0) {
errMsg.insert(0,"Command exit with status code " + exitCode + ",\n");
}
{code}
3) In the patch you are waiting for the error stream to finish with the output
stream still open. This could possibly lead to a deadlock
4) The reason {{completed}} was introduced is as follows
- If {{parseExec}} generates an exception then there is no need to wait for the
error thread to complete, so interrupt
- the exit code is sufficient for determining the error and hence its fine to
interrupt the error thread
- in normal case since there is no error its fine to do as join
A better solution would be to interrupt error thread for exception on
{{parseExec}} and join for others. In which case the 'completed=true' should be
done before throwing an exception.
Except the change of {{errThread.join}} block, rest seems fine.
comments?
> 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
> 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.