You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2010/02/11 01:54:28 UTC
[jira] Created: (MAPREDUCE-1481) Streaming should swallow
IOExceptions when closing clientOut
Streaming should swallow IOExceptions when closing clientOut
------------------------------------------------------------
Key: MAPREDUCE-1481
URL: https://issues.apache.org/jira/browse/MAPREDUCE-1481
Project: Hadoop Map/Reduce
Issue Type: Bug
Components: contrib/streaming
Affects Versions: 0.20.1, 0.21.0, 0.22.0
Reporter: Todd Lipcon
Assignee: Todd Lipcon
in PipeMapRed.mapRedFinished, streaming flushes and closes clientOut_, the handle to the subprocess's stdin. If the subprocess has already exited or closed its stdin, this will generate a Broken Pipe IOException. This causes us to skip waitOutputThreads, which is incorrect, since the subprocess may have data still written from stdout that needs to be read.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (MAPREDUCE-1481) Streaming should swallow
IOExceptions when closing clientOut
Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MAPREDUCE-1481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12832753#action_12832753 ]
Todd Lipcon commented on MAPREDUCE-1481:
----------------------------------------
Actually, I think this is a bug but not quite how I described it. If the flush fails, it means we were trying to write data into a streaming executable that didn't consume all of its input.
I don't know what the expected behavior is here. Right now, the behavior is that we stop consuming its output, but the task still succeeds so long as the exit code is 0. I think this is incorrect. We should either entirely fail the task regardless of exit code, or we should consume the rest of its output.
> Streaming should swallow IOExceptions when closing clientOut
> ------------------------------------------------------------
>
> Key: MAPREDUCE-1481
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-1481
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: contrib/streaming
> Affects Versions: 0.20.1, 0.21.0, 0.22.0
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
>
> in PipeMapRed.mapRedFinished, streaming flushes and closes clientOut_, the handle to the subprocess's stdin. If the subprocess has already exited or closed its stdin, this will generate a Broken Pipe IOException. This causes us to skip waitOutputThreads, which is incorrect, since the subprocess may have data still written from stdout that needs to be read.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (MAPREDUCE-1481) Streaming should swallow
IOExceptions when closing clientOut
Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/MAPREDUCE-1481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Todd Lipcon updated MAPREDUCE-1481:
-----------------------------------
Attachment: TestStreamingDontConsumeInput.java
quickly built a testcase for this, though no patch yet - the code is somewhat spaghetti.
> Streaming should swallow IOExceptions when closing clientOut
> ------------------------------------------------------------
>
> Key: MAPREDUCE-1481
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-1481
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Components: contrib/streaming
> Affects Versions: 0.20.1, 0.21.0, 0.22.0
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Attachments: TestStreamingDontConsumeInput.java
>
>
> in PipeMapRed.mapRedFinished, streaming flushes and closes clientOut_, the handle to the subprocess's stdin. If the subprocess has already exited or closed its stdin, this will generate a Broken Pipe IOException. This causes us to skip waitOutputThreads, which is incorrect, since the subprocess may have data still written from stdout that needs to be read.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.