private void deleteDataForClientZkUntilSuccess(String node) throws InterruptedException {
    while (!server.isStopped()) {
      LOG.debug("Delete remote " + node + ", client zk wather: " + clientZkWatcher);
      try {
        ZKUtil.deleteNode(clientZkWatcher, node);
        break;
      } catch (KeeperException e) {
        if (e.code() == KeeperException.Code.NONODE) {
          LOG.debug("Node is already deleted, give up", e);
          break;
        }
        LOG.debug("Failed to delete node from client ZK, will retry later", e);
        if (e.code() == KeeperException.Code.SESSIONEXPIRED) {
          reconnectAfterExpiration();
        }
      }
    }
  }
Set data for client ZK and retry until succeed. Be very careful to prevent dead loop when
modifying this method
@param node the znode to set on client ZK
@param data the data to set to client ZK
@throws InterruptedException if the thread is interrupted during process
hbase-server/src/main/java/org/apache/hadoop/hbase/master/zksyncer/ClientZKSyncer.java