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

Bikas Saha commented on YARN-1222:
----------------------------------

REQUEST_BY_USER_FORCED is probably not the right choice.
{code}+      target.getProxy(getConfig(), 1000).transitionToStandby(
+          new HAServiceProtocol.StateChangeRequestInfo(
+              HAServiceProtocol.RequestSource.REQUEST_BY_USER_FORCED));
+    } catch (IOException e) {
{code}

There are finally blocks that call methods like 
notifyDoneStoringApplicationAttempt() These end up sending events to the RM 
modules which check for the exception and then call terminate for the RM Java 
process. We probably dont want that to happen since we simply want to 
transitionToStandby and discard all the internal state.

Thinking aloud, using HAServiceTarget in RMStateStore to transitionToStandby() 
may not be the right solution. We are effectively doing an internal RPC on an 
ACL'd protocol. Is it guaranteed to succeed? Should we think of sending an 
event to the HAProtocolService or have a reference to the HAProtocolService so 
that it can be directly notified about this situation. Then the 
HAProtocolService may transition to standby internally. The store should inform 
the higher entity about the fenced state and not take action on the higher 
entity by fencing it. Thoughts?

> Make improvements in ZKRMStateStore for fencing
> -----------------------------------------------
>
>                 Key: YARN-1222
>                 URL: https://issues.apache.org/jira/browse/YARN-1222
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>            Reporter: Bikas Saha
>            Assignee: Karthik Kambatla
>         Attachments: yarn-1222-1.patch, yarn-1222-2.patch, yarn-1222-3.patch, 
> yarn-1222-4.patch, yarn-1222-5.patch
>
>
> Using multi-operations for every ZK interaction. 
> In every operation, automatically creating/deleting a lock znode that is the 
> child of the root znode. This is to achieve fencing by modifying the 
> create/delete permissions on the root znode.



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

Reply via email to