You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2014/01/23 18:13:17 UTC

git commit: ACCUMULO-2154 Ignore NoNodeException while getting DeadServerList

Updated Branches:
  refs/heads/1.6.0-SNAPSHOT 182f15260 -> ecdd8528d


ACCUMULO-2154 Ignore NoNodeException while getting DeadServerList

Signed-off-by: Keith Turner <kt...@apache.org>


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

Branch: refs/heads/1.6.0-SNAPSHOT
Commit: ecdd8528ddf0108919ec48dc545e765c2c3aa364
Parents: 182f152
Author: Vikram Srivastava <vi...@cloudera.com>
Authored: Thu Jan 23 02:42:19 2014 -0800
Committer: Keith Turner <kt...@apache.org>
Committed: Thu Jan 23 12:14:38 2014 -0500

----------------------------------------------------------------------
 .../accumulo/server/master/state/DeadServerList.java     | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/ecdd8528/server/base/src/main/java/org/apache/accumulo/server/master/state/DeadServerList.java
----------------------------------------------------------------------
diff --git a/server/base/src/main/java/org/apache/accumulo/server/master/state/DeadServerList.java b/server/base/src/main/java/org/apache/accumulo/server/master/state/DeadServerList.java
index b2ea7d6..e1ffd2f 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/master/state/DeadServerList.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/master/state/DeadServerList.java
@@ -26,6 +26,7 @@ import org.apache.accumulo.fate.zookeeper.ZooUtil.NodeMissingPolicy;
 import org.apache.accumulo.server.zookeeper.ZooReaderWriter;
 import org.apache.log4j.Logger;
 import org.apache.zookeeper.data.Stat;
+import org.apache.zookeeper.KeeperException.NoNodeException;
 
 public class DeadServerList {
   private static final Logger log = Logger.getLogger(DeadServerList.class);
@@ -49,7 +50,15 @@ public class DeadServerList {
       if (children != null) {
         for (String child : children) {
           Stat stat = new Stat();
-          byte[] data = zoo.getData(path + "/" + child, stat);
+          byte[] data;
+          try {
+            data = zoo.getData(path + "/" + child, stat);
+          } catch (NoNodeException nne) {
+            // Another thread or process can delete child while this loop is running.
+            // We ignore this error since it's harmless if we miss the deleted server
+            // in the dead server list.
+            continue;
+          }
           DeadServer server = new DeadServer(child, stat.getMtime(), new String(data));
           result.add(server);
         }