ACCUMULO-2334 Make a slightly better ZK check for the mid-1.5.1-SNAPSHOT state.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/fd31595b
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/fd31595b
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/fd31595b

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: fd31595b55f66627cf6d64cb20cc874c04e9da58
Parents: 0351d0d
Author: Josh Elser <els...@apache.org>
Authored: Tue Feb 11 12:04:39 2014 -0500
Committer: Josh Elser <els...@apache.org>
Committed: Tue Feb 11 12:04:39 2014 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/server/monitor/Monitor.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/fd31595b/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java
----------------------------------------------------------------------
diff --git 
a/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java 
b/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java
index b33d9e3..00bd3ca 100644
--- a/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java
+++ b/server/src/main/java/org/apache/accumulo/server/monitor/Monitor.java
@@ -562,11 +562,18 @@ public class Monitor {
         // And then make the nodes that we expect for the incoming ephemeral 
nodes
         zoo.putPersistentData(monitorPath, new byte[0], NodeExistsPolicy.FAIL);
         zoo.putPersistentData(monitorLockPath, new byte[0], 
NodeExistsPolicy.FAIL);
+      } else if (!zoo.exists(monitorLockPath)) {
+        // monitor node in ZK exists and is empty as we expect
+        // but the monitor/lock node does not
+        zoo.putPersistentData(monitorLockPath, new byte[0], 
NodeExistsPolicy.FAIL);
       }
     } else {
       // 1.5.0 and earlier
       zoo.putPersistentData(zRoot + Constants.ZMONITOR, new byte[0], 
NodeExistsPolicy.FAIL);
-      zoo.putPersistentData(zRoot + Constants.ZMONITOR_LOCK, new byte[0], 
NodeExistsPolicy.FAIL);
+      if (!zoo.exists(monitorLockPath)) {
+        // Somehow the monitor node exists but not monitor/lock
+        zoo.putPersistentData(monitorLockPath, new byte[0], 
NodeExistsPolicy.FAIL);
+      }
     }
 
     // Get a ZooLock for the monitor

Reply via email to