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