[
https://issues.apache.org/jira/browse/YARN-366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13570856#comment-13570856
]
Sandy Ryza commented on YARN-366:
---------------------------------
I've attached an initial patch that adds TracingAsyncDispatcher. The basic
idea of it is that it maintains a thread local reference to the event currently
being handled, so that any other events that are fired off while it is being
handled get tagged with it as a parent. I've added an EventTrace field to the
Event class that maintains trace and parentage information - if we want this
feature to entirely not affect existing code, we could instead maintain a
mapping inside the dispatcher.
I still need to add in configuration hooks to turn it on.
> Add a tracing async dispatcher to simplify debugging
> ----------------------------------------------------
>
> Key: YARN-366
> URL: https://issues.apache.org/jira/browse/YARN-366
> Project: Hadoop YARN
> Issue Type: New Feature
> Components: nodemanager, resourcemanager
> Affects Versions: 2.0.2-alpha
> Reporter: Sandy Ryza
> Assignee: Sandy Ryza
> Attachments: YARN-366.patch
>
>
> Exceptions thrown in YARN/MR code with asynchronous event handling do not
> contain informative stack traces, as all handle() methods sit directly under
> the dispatcher thread's loop.
> This makes errors very difficult to debug for those who are not intimately
> familiar with the code, as it is difficult to see which chain of events
> caused a particular outcome.
> I propose adding an AsyncDispatcher that instruments events with tracing
> information. Whenever an event is dispatched during the handling of another
> event, the dispatcher would annotate that event with a pointer to its parent.
> When the dispatcher catches an exception, it could reconstruct a "stack"
> trace of the chain of events that led to it, and be able to log something
> informative.
> This would be an experimental feature, off by default, unless extensive
> testing showed that it did not have a significant performance impact.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira