[
https://issues.apache.org/jira/browse/TEZ-3462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Badger updated TEZ-3462:
-----------------------------
Attachment: TEZ-3462.001.patch
Attaching a patch that only communicates the task failure to the AM if the
container is not currently shutting down. This is the same as what
MAPREDUCE-6002 does.
The unit test creates a task that will throw an IOException. It overrides the
{{isShuttingDown()}} method that was added and forces it to always return true.
Then it checks to make sure that no {{TaskAttemptFailedEvent}} or
{{TaskAttemptCompletedEvent}} events were sent over the umbilical. The test
passes consistently with {{isShuttingDown()}} set to true and fails
consistently with {{isShuttingDown()}} set to false.
[~jlowe], could you review this? Thanks!
> Task attempt failure during container shutdown loses useful container
> diagnostics
> ---------------------------------------------------------------------------------
>
> Key: TEZ-3462
> URL: https://issues.apache.org/jira/browse/TEZ-3462
> Project: Apache Tez
> Issue Type: Bug
> Affects Versions: 0.7.1
> Reporter: Jason Lowe
> Assignee: Eric Badger
> Attachments: TEZ-3462.001.patch
>
>
> When a nodemanager kills a task attempt due to excessive memory usage it will
> send a SIGTERM followed by a SIGKILL. It also sends a useful diagnostic
> message with the container completion event to the RM which will eventually
> make it to the AM on a subsequent heartbeat.
> However if the JVM shutdown processing causes an error in the task (e.g.:
> filesystem being closed by shutdown hook) then the task attempt can report a
> failure before the useful NM diagnostic makes it to the AM. The AM then
> records some other error as the task failure reason, and by the time the
> container completion status makes it to the AM it does not associate that
> error with the task attempt and the useful information is lost.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)