[
https://issues.apache.org/jira/browse/TEZ-3972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16606359#comment-16606359
]
Kuhu Shukla commented on TEZ-3972:
----------------------------------
The question being what makes more sense for
TaskAttemptImpl#OutputReportedFailedTransition#transition
{code:java}
- float failureFraction = ((float)
attempt.uniquefailedOutputReports.size())
- / outputFailedEvent.getConsumerTaskNumber();
+ int runningTasks = attempt.appContext.getCurrentDAG().getVertex(
+ failedDestTaId.getTaskID().getVertexID()).getRunningTasks();
+ float failureFraction = runningTasks > 0 ? ((float)
attempt.uniquefailedOutputReports.size()) / runningTasks
+ : ((float)
attempt.uniquefailedOutputReports.size()) /
outputFailedEvent.getConsumerTaskNumber();
{code}
OR
{code:java}
- float failureFraction = ((float)
attempt.uniquefailedOutputReports.size())
- / outputFailedEvent.getConsumerTaskNumber();
+ int runningTasks = attempt.appContext.getCurrentDAG().getVertex(
+ failedDestTaId.getTaskID().getVertexID()).getRunningTasks();
+ float failureFraction = runningTasks > 0 ? ((float)
attempt.uniquefailedOutputReports.size()) / runningTasks : 0;
{code}
> Tez DAG can hang when a single task fails to fetch
> --------------------------------------------------
>
> Key: TEZ-3972
> URL: https://issues.apache.org/jira/browse/TEZ-3972
> Project: Apache Tez
> Issue Type: Bug
> Affects Versions: 0.9.1
> Reporter: Kuhu Shukla
> Assignee: Kuhu Shukla
> Priority: Major
> Attachments: TEZ-3972.001.patch, TEZ-3972.002.patch
>
>
> Description of the hung DAG:
> A DAG with 2 vertices. {{Map}} Vertex has 22k maps, downstream vertex
> {{Reduce}} has 1009 tasks. All tasks succeed but one, which hangs. This one
> task (attempt) is doing a local fetch from a node that (now) has a bad disk.
> It fails to fetch and reports to the AM for the offending input attempt
> identifiers. However the AM does not schedule a re-run as
> {{uniquefailedOutputReports}} size is 1 (since only this task attempt failed
> to fetch) and failure fraction is not met. The denominator for this fraction
> is the total number of tasks. That causes the re-run to never occur. This
> JIRA tracks the AM side of the change to alleviate this problem.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)