You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2010/12/14 21:26:30 UTC

svn commit: r1049249 - in /hbase/trunk: ./ src/main/java/org/apache/hadoop/hbase/master/ src/main/java/org/apache/hadoop/hbase/replication/ src/main/java/org/apache/hadoop/hbase/replication/regionserver/

Author: jdcryans
Date: Tue Dec 14 20:26:30 2010
New Revision: 1049249

URL: http://svn.apache.org/viewvc?rev=1049249&view=rev
Log:
   HBASE-3355  Stopping a stopped cluster leaks an HMaster
   HBASE-3356  Add more checks in replication if RS is stopped

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1049249&r1=1049248&r2=1049249&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Tue Dec 14 20:26:30 2010
@@ -775,6 +775,8 @@ Release 0.90.0 - Unreleased
    HBASE-3351  ReplicationZookeeper goes to ZK every time a znode is modified
    HBASE-3326  Replication state's znode should be created else it 
                defaults to false
+   HBASE-3355  Stopping a stopped cluster leaks an HMaster
+   HBASE-3356  Add more checks in replication if RS is stopped
 
 
   IMPROVEMENTS

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java?rev=1049249&r1=1049248&r2=1049249&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java Tue Dec 14 20:26:30 2010
@@ -157,6 +157,9 @@ public class HMasterCommandLine extends 
   private int stopMaster() {
     HBaseAdmin adm = null;
     try {
+      Configuration conf = getConf();
+      // Don't try more than once
+      conf.setInt("hbase.client.retries.number", 1);
       adm = new HBaseAdmin(getConf());
     } catch (MasterNotRunningException e) {
       LOG.error("Master not running");

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java?rev=1049249&r1=1049248&r2=1049249&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java Tue Dec 14 20:26:30 2010
@@ -612,6 +612,10 @@ public class ReplicationZookeeper {
       ZKUtil.deleteNodeRecursively(this.zookeeper,
           this.rsServerNameZnode);
     } catch (KeeperException e) {
+      // if the znode is already expired, don't bother going further
+      if (e instanceof KeeperException.SessionExpiredException) {
+        return;
+      }
       this.abortable.abort("Failed delete of " + this.rsServerNameZnode, e);
     }
   }

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java?rev=1049249&r1=1049248&r2=1049249&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java Tue Dec 14 20:26:30 2010
@@ -150,7 +150,7 @@ public class ReplicationSourceManager {
     for (String id : this.zkHelper.getPeerClusters().keySet()) {
       addSource(id);
     }
-    List<String> currentReplicators = this.zkHelper.getRegisteredRegionServers();
+    List<String> currentReplicators = this.zkHelper.getListOfReplicators();
     if (currentReplicators == null || currentReplicators.size() == 0) {
       return;
     }
@@ -406,6 +406,9 @@ public class ReplicationSourceManager {
      * @param path full path of the deleted node
      */
     public void nodeDeleted(String path) {
+      if (stopper.isStopped()) {
+        return;
+      }
       boolean cont = refreshRegionServersList(path);
       if (!cont) {
         return;
@@ -419,6 +422,9 @@ public class ReplicationSourceManager {
      * @param path full path of the node whose children have changed
      */
     public void nodeChildrenChanged(String path) {
+      if (stopper.isStopped()) {
+        return;
+      }
       refreshRegionServersList(path);
     }