HBASE-23076 [HBOSS] ZKTreeLockManager shouldn't try to acquire a lock from the InterProcessMutex instance when checking if other processes hold it. #8

Signed-off-by: Josh Elser <elserj@apache.org>
diff --git a/hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/sync/ZKTreeLockManager.java b/hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/sync/ZKTreeLockManager.java
index 83451c6..35ce908 100644
--- a/hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/sync/ZKTreeLockManager.java
+++ b/hbase-oss/src/main/java/org/apache/hadoop/hbase/oss/sync/ZKTreeLockManager.java
@@ -305,16 +305,12 @@
         // than checking other processes.
         return true;
       }
-      // Finally, see if another process holds the lock. This is a terrible way
-      // to check but Curator doesn't expose another way.
-      if (lock.acquire(0, TimeUnit.NANOSECONDS)) {
-        lock.release();
-        return false;
-      }
+      return !lock.getParticipantNodes().isEmpty();
+    } catch (KeeperException.NoNodeException e){
+      return false;
     } catch (Exception e) {
       throw new IOException("Exception while testing a lock", e);
     }
-    return true;
   }
 
   public String summarizeLocks() {
diff --git a/hbase-oss/src/test/java/org/apache/hadoop/hbase/oss/TestRecursiveDelete.java b/hbase-oss/src/test/java/org/apache/hadoop/hbase/oss/TestRecursiveDelete.java
index 0d5c6a8..2b67b96 100644
--- a/hbase-oss/src/test/java/org/apache/hadoop/hbase/oss/TestRecursiveDelete.java
+++ b/hbase-oss/src/test/java/org/apache/hadoop/hbase/oss/TestRecursiveDelete.java
@@ -70,7 +70,9 @@
       });
       Assert.assertNull(fut.get(15, TimeUnit.SECONDS));
     } finally {
+      long start = System.currentTimeMillis();
       hboss.delete(tmp, true);
+      LOG.debug(">> time elapsed: " + (System.currentTimeMillis()-start));
     }
   }