Varun Saxena commented on YARN-2946:

Frankly, as all of these methods *merely have a single line calling another 
method* in {{ZKRMStateStore}}, in addition to call to isFencedState and 
notifyStoreOperationFailed. Hence, we *do not even need a synchronized block* 
in these methods in RMStateStore. Just make the relevant method in 
ZKRMStateStore *synchronized*. 

> DeadLock's in RMStateStore<->ZKRMStateStore
> -------------------------------------------
>                 Key: YARN-2946
>                 URL: https://issues.apache.org/jira/browse/YARN-2946
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>    Affects Versions: 2.7.0
>            Reporter: Rohith
>            Assignee: Rohith
>            Priority: Blocker
>         Attachments: 0001-YARN-2946.patch, 0002-YARN-2946.patch, 
> TestYARN2946.java
> Found one deadlock in ZKRMStateStore.
> # Initial stage zkClient is null because of zk disconnected event.
> # When ZKRMstatestore#runWithCheck()  wait(zkSessionTimeout) for zkClient to 
> re establish zookeeper connection either via synconnected or expired event, 
> it is highly possible that any other thred can obtain lock on 
> {{ZKRMStateStore.this}} from state machine transition events. This cause 
> Deadlock in ZKRMStateStore.

This message was sent by Atlassian JIRA

Reply via email to