in hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/sync/ZKTreeLockManager.java [229:244]
protected void recursiveDelete(Path p) throws IOException {
LOG.debug("Removing all mutex and znodes for paths beneath {}", p);
try {
ZKPaths.deleteChildren(curator.getZookeeperClient().getZooKeeper(),
p.toString(), !p.isRoot());
// Before this method is called, we have a guarantee that
// 1. There are no write locks above or below us
// 2. There are no read locks below us
// As such, we can just remove locks beneath us as we find them.
removeInMemoryLocks(p);
} catch (KeeperException.NoNodeException e) {
LOG.warn("Lock not found during recursive delete: {}", p);
} catch (Exception e) {
throw new IOException("Exception while deleting lock " + p, e);
}
}