ACCUMULO-1572 apply missing patch; prevent logger from killing itself on a 
Disconnect event


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

Branch: refs/heads/master
Commit: 4ed51ecbca7d4120c5c31531ecbebb5d56a7b79f
Parents: 3e97167
Author: Eric Newton <e...@apache.org>
Authored: Fri Aug 30 11:00:57 2013 -0400
Committer: Eric Newton <e...@apache.org>
Committed: Fri Aug 30 11:00:57 2013 -0400

----------------------------------------------------------------------
 .../main/java/org/apache/accumulo/server/logger/LogService.java  | 4 ++++
 .../main/java/org/apache/accumulo/server/zookeeper/ZooLock.java  | 3 +++
 2 files changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/4ed51ecb/src/server/src/main/java/org/apache/accumulo/server/logger/LogService.java
----------------------------------------------------------------------
diff --git 
a/src/server/src/main/java/org/apache/accumulo/server/logger/LogService.java 
b/src/server/src/main/java/org/apache/accumulo/server/logger/LogService.java
index b386234..ebfc287 100644
--- a/src/server/src/main/java/org/apache/accumulo/server/logger/LogService.java
+++ b/src/server/src/main/java/org/apache/accumulo/server/logger/LogService.java
@@ -373,6 +373,8 @@ public class LogService implements MutationLogger.Iface, 
Watcher {
   @Override
   public void process(WatchedEvent event) {
     LOG.debug("event " + event.getPath() + " " + event.getType() + " " + 
event.getState());
+    if (event.getState() == KeeperState.Disconnected)
+      return;
     
     if (event.getState() == KeeperState.Expired) {
       LOG.warn("Logger lost zookeeper registration at " + event.getPath());
@@ -391,6 +393,8 @@ public class LogService implements MutationLogger.Iface, 
Watcher {
         LOG.fatal("Stopping server, zookeeper entry lost " + event.getPath());
         service.stop();
       }
+    } catch (KeeperException.ConnectionLossException ex) {
+      LOG.info("Disconnected from zookeeper");
     } catch (Exception ex) {
       LOG.fatal("Stopping server, cannot reset watch" + ex);
       service.stop();

http://git-wip-us.apache.org/repos/asf/accumulo/blob/4ed51ecb/src/server/src/main/java/org/apache/accumulo/server/zookeeper/ZooLock.java
----------------------------------------------------------------------
diff --git 
a/src/server/src/main/java/org/apache/accumulo/server/zookeeper/ZooLock.java 
b/src/server/src/main/java/org/apache/accumulo/server/zookeeper/ZooLock.java
index 03e84a7..c7e2f2f 100644
--- a/src/server/src/main/java/org/apache/accumulo/server/zookeeper/ZooLock.java
+++ b/src/server/src/main/java/org/apache/accumulo/server/zookeeper/ZooLock.java
@@ -344,6 +344,9 @@ public class ZooLock implements Watcher {
       try { // set the watch on the parent node again
         zooKeeper.getStatus(path, this);
         watchingParent = true;
+      } catch (KeeperException.ConnectionLossException ex) {
+        // we can't look at the lock because we aren't connected, but our 
session is still good
+        log.warn("lost connection to zookeeper");
       } catch (Exception ex) {
         if (lock != null || asyncLock != null) {
           lockWatcher.unableToMonitorLockNode(ex);

Reply via email to