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

Jason Lowe commented on YARN-1430:
----------------------------------

Before flipping the switch to change this, we need to carefully consider the 
consequences.  I'm all for making this a fatal error for unit tests, but I'm 
not convinced this is a good thing for production environments.

We have been running in production for quite some time now (0.23 instead of 
2.x, but the code is very similar in many of these areas).  We've seen invalid 
state transitions logged on our production machines and have filed quite a few 
JIRAs related to those.  However I was often thankful the invalid state 
transition did not crash, because in the vast majority of these cases the 
system can continue to function in an "acceptable" manner.  Sure, we might leak 
some resources related to an application, fail to aggregate some log or 
something similar, but I'd rather take that pain with a potential workaround 
than the alternative of bringing down the entire cluster each and every time it 
occurs.

What I'm worried about here is a case where we don't see the error during 
testing but when we deploy to production some critical, frequent job 
consistently triggers an unhandled transition.  If that's always fatal, now 
we're stuck in a state where the cluster cannot stay up very long until we 
scramble to develop and deploy a fix or have to rollback, and we have 
guaranteed downtime when it occurs.  In almost all of these cases the invalid 
transition is going to be localized to just one app, one container, or one 
node.  I'm not sure that kind of error is worth taking down an entire cluster 
outside of a testing setup.  I feel this is similar to how most software 
products handle asserts -- they are fatal during development but not during 
production.

> InvalidStateTransition exceptions are ignored in state machines
> ---------------------------------------------------------------
>
>                 Key: YARN-1430
>                 URL: https://issues.apache.org/jira/browse/YARN-1430
>             Project: Hadoop YARN
>          Issue Type: Bug
>            Reporter: Omkar Vinit Joshi
>            Assignee: Omkar Vinit Joshi
>
> We have all state machines ignoring InvalidStateTransitions. These exceptions 
> will get logged but will not crash the RM / NM. We definitely should crash it 
> as they move the system into some invalid / unacceptable state.
> * Places where we hide this exception :-
> ** JobImpl
> ** TaskAttemptImpl
> ** TaskImpl
> ** NMClientAsyncImpl
> ** ApplicationImpl
> ** ContainerImpl
> ** LocalizedResource
> ** RMAppAttemptImpl
> ** RMAppImpl
> ** RMContainerImpl
> ** RMNodeImpl
> thoughts?



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to