[
https://issues.apache.org/jira/browse/HBASE-8937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13826276#comment-13826276
]
Aaron Lei commented on HBASE-8937:
----------------------------------
I also wonder how it works without registering a watcher when create master
znode.
Is this code:
byte [] bytes = ZKUtil.getDataAndWatch(this.watcher,
this.watcher.masterAddressZNode);
that makes it work well?
> createEphemeralNodeAndWatch don't set watcher if the node is created
> successfully
> ---------------------------------------------------------------------------------
>
> Key: HBASE-8937
> URL: https://issues.apache.org/jira/browse/HBASE-8937
> Project: HBase
> Issue Type: Bug
> Components: master
> Reporter: Liu Shaohui
> Priority: Minor
> Labels: master, wacter
>
> CreateEphemeralNodeAndWatch in zkUtil don't set watcher if the node is
> created successfully. This is not consistent with the comment and may causes
> the ActiveMasterManager cannot get events that master node is deleted or
> changed.
> {code}
> public static boolean createEphemeralNodeAndWatch(ZooKeeperWatcher zkw,
> String znode, byte [] data)
> throws KeeperException {
> try {
> zkw.getRecoverableZooKeeper().create(znode, data, createACL(zkw, znode),
> CreateMode.EPHEMERAL);
> } catch (KeeperException.NodeExistsException nee) {
> if(!watchAndCheckExists(zkw, znode)) {
> // It did exist but now it doesn't, try again
> return createEphemeralNodeAndWatch(zkw, znode, data);
> }
> return false;
> } catch (InterruptedException e) {
> LOG.info("Interrupted", e);
> Thread.currentThread().interrupt();
> }
> return true;
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1#6144)