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

Bikas Saha commented on YARN-369:
---------------------------------

How about calling hasApplicationMasterRegistered() in 
registerApplicationMaster() instead of duplicating the code?

How about simply throwing an exception on double registering?

MockAM has methods to do the right things. Lets not add a method like 
reRegister() to do an incorrect thing. This message can be created and sent 
explicitly one time in the test instead of adding it to MockAM.
                
> Handle ( or throw a proper error when receiving) status updates from 
> application masters that have not registered
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-369
>                 URL: https://issues.apache.org/jira/browse/YARN-369
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: resourcemanager
>    Affects Versions: 2.0.3-alpha, trunk-win
>            Reporter: Hitesh Shah
>            Assignee: Mayank Bansal
>         Attachments: YARN-369.patch, YARN-369-trunk-1.patch, 
> YARN-369-trunk-2.patch
>
>
> Currently, an allocate call from an unregistered application is allowed and 
> the status update for it throws a statemachine error that is silently dropped.
> org.apache.hadoop.yarn.state.InvalidStateTransitonException: Invalid event: 
> STATUS_UPDATE at LAUNCHED
>        at 
> org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
>        at 
> org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
>        at 
> org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:445)
>        at 
> org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:588)
>        at 
> org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.handle(RMAppAttemptImpl.java:99)
>        at 
> org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:471)
>        at 
> org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$ApplicationAttemptEventDispatcher.handle(ResourceManager.java:452)
>        at 
> org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:130)
>        at 
> org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:77)
>        at java.lang.Thread.run(Thread.java:680)
> ApplicationMasterService should likely throw an appropriate error for 
> applications' requests that should not be handled in such cases.

--
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

Reply via email to