You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-issues@hadoop.apache.org by "zhihai xu (JIRA)" <ji...@apache.org> on 2015/09/28 09:43:04 UTC

[jira] [Updated] (YARN-4209) RMStateStore FENCED state doesn’t work

     [ https://issues.apache.org/jira/browse/YARN-4209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

zhihai xu updated YARN-4209:
----------------------------
    Attachment: YARN-4209.000.patch

> RMStateStore FENCED state doesn’t work
> --------------------------------------
>
>                 Key: YARN-4209
>                 URL: https://issues.apache.org/jira/browse/YARN-4209
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>    Affects Versions: 2.7.1
>            Reporter: zhihai xu
>            Assignee: zhihai xu
>            Priority: Critical
>         Attachments: YARN-4209.000.patch
>
>
> RMStateStore FENCED state doesn’t work. The reason is
> {{stateMachine.doTransition}} called from {{updateFencedState}} is embedded in {{stateMachine.doTransition}} called from public API(removeRMDelegationToken...) or {{ForwardingEventHandler#handle}}. So right after the internal state transition from {{updateFencedState}} changes the state to FENCED state, the external state transition changes the state back to ACTIVE state. The end result is that RMStateStore is still in ACTIVE state even notifyStoreOperationFailed is called. The only working case for FENCED state is {{notifyStoreOperationFailed}} called from {{ZKRMStateStore#VerifyActiveStatusThread}}.
> For example: {{removeRMDelegationToken}} => {{handleStoreEvent}} => enter external {{stateMachine.doTransition}} => {{RemoveRMDTTransition}} => {{notifyStoreOperationFailed}} =>{{updateFencedState}}=>{{handleStoreEvent}}=> enter internal {{stateMachine.doTransition}} => exit internal {{stateMachine.doTransition}} change state to FENCED => exit external {{stateMachine.doTransition}} change state to ACTIVE.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)