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

Jonathan Eagles commented on TEZ-3910:
--------------------------------------

Talked offline with [~kshukla]. Trying to capture our conversation here.

Eventually, we will need to refactor the fetch failure retry logic, but that 
can wait for another jira.
Couple of minor things.
-TEZ_AM_MAX_DOWNSTREAM_TASK_FAILURES //configuration key name needs to change.
-attempt.getVertex().getTask(failedDestTaId.getTaskID()); //completely 
unnecessary line
Design. The sending of isShuffleHealthy is attempting to keep the downstream 
task from killing itself and giving that power over to the AM to decide.
Having the AM decide can be good. I'm wondering if we should give that power 
over to the upstream task. When the task reaches over to get the states of the 
downstream failed attempts, it points to the logic possibly in the incorrect 
place. 
I worry about hangs of the downstream attempt where where the threshold isn't 
met in either upstream or downstream attempt.
I wonder about alternative solutions but have to keep them from assuming 
scatter gather solutions. Do we even need a configuration for this or should it 
always be one less than the number of max attempts. Could we extend the 
isShuffleHealthy to give more knowledge to the AM, or perhaps get ride of 
isShuffleHealthy altogether. Also, how do we think about this considering other 
shuffle problems (single task vertex hangs where max threshold is never met).


> Single node can cause Tez job to fail during shuffle
> ----------------------------------------------------
>
>                 Key: TEZ-3910
>                 URL: https://issues.apache.org/jira/browse/TEZ-3910
>             Project: Apache Tez
>          Issue Type: Bug
>    Affects Versions: 0.9.1
>            Reporter: Kuhu Shukla
>            Assignee: Kuhu Shukla
>            Priority: Major
>         Attachments: TEZ-3910.001.patch, TEZ-3910.002.patch, 
> TEZ-3910.003.patch
>
>
> There is a race where a downstream task that is running into fetch failures 
> due to bad output from the upstream task can continue to blame itself for the 
> failure before the AM can do a re-run of the upstream offending task and fix 
> the fetch failure. This causes the DAG to fail even if a single node fails.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to