[
https://issues.apache.org/jira/browse/YARN-7192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16166341#comment-16166341
]
Jason Lowe commented on YARN-7192:
----------------------------------
Took a quick look at the patch, some initial comments:
Would it make sense for the listener API to directly support multiple
listeners? Typically the types of APIs do, so a bit surprised to not see it
here. It can always be added later, but that requires a "multi-listener
listener" class to be configured and yet another config to specify the list of
actual listeners desired. If multiple are supported then there's the question
of whether events are always dispatched or if callbacks can suppress further
notification ala POSIX signal handling, GUI event handling, and other similar
setups.
Does a container listener require more than just a conf? Wondering if it may
need the ability to see the NMContext, the Nodemanager object, etc. to get
access to other services within the NM to do what it wants to do.
The InternalStateMachine constructor that doesn't take a listener should just
pass null to the one that does rather than duplicate the default setting. That
way there's only one place where we set the default listener, and if that needs
to change there's only one place to update.
{code}
try {
ContainerStateTransitionListener listener =
ReflectionUtils.newInstance(listenerClass, conf);
nmContext.setContainerStateTransitionListener(listener);
} catch (Exception e) {
throw new RuntimeException(
"Could not instantiate [" + listenerClass.getName() + "]");
}
{code}
The exception that was caught is smashed with a generic RuntimeException
because it doesn't pass it on as the cause. This will make it very difficult
to debug from the logs.
> Add a pluggable StateMachine Listener that is notified of NM Container State
> changes
> ------------------------------------------------------------------------------------
>
> Key: YARN-7192
> URL: https://issues.apache.org/jira/browse/YARN-7192
> Project: Hadoop YARN
> Issue Type: Bug
> Reporter: Arun Suresh
> Assignee: Arun Suresh
> Attachments: YARN-7192.001.patch
>
>
> This JIRA is to add support for a plugggable class in the NodeManager that is
> notified of changes to the Container StateMachine state and the events that
> caused the change.
> The proposal is to modify the basic StateMachine class add support for a hook
> that is called before and after a transition.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]