You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2012/10/31 15:06:41 UTC

svn commit: r1404146 - in /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase: LocalHBaseCluster.java master/HMaster.java master/balancer/BalancerChore.java util/JVMClusterUtil.java

Author: tedyu
Date: Wed Oct 31 14:06:40 2012
New Revision: 1404146

URL: http://svn.apache.org/viewvc?rev=1404146&view=rev
Log:
HBASE-7066 Some HMaster coprocessor exceptions are being swallowed in try catch blocks (Francis Liu)


Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BalancerChore.java
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java?rev=1404146&r1=1404145&r2=1404146&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/LocalHBaseCluster.java Wed Oct 31 14:06:40 2012
@@ -426,7 +426,7 @@ public class LocalHBaseCluster {
   /**
    * Shut down the mini HBase cluster
    */
-  public void shutdown() {
+  public void shutdown() throws IOException {
     JVMClusterUtil.shutdown(this.masterThreads, this.regionThreads);
   }
 

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1404146&r1=1404145&r2=1404146&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Wed Oct 31 14:06:40 2012
@@ -1256,7 +1256,7 @@ Server {
     return balancerCutoffTime;
   }
 
-  public boolean balance() {
+  public boolean balance() throws IOException {
     // if master not initialized, don't run balancer.
     if (!this.initialized) {
       LOG.debug("Master has not been initialized, don't run balancer.");
@@ -1285,13 +1285,8 @@ Server {
       }
 
       if (this.cpHost != null) {
-        try {
-          if (this.cpHost.preBalance()) {
-            LOG.debug("Coprocessor bypassing balancer request");
-            return false;
-          }
-        } catch (IOException ioe) {
-          LOG.error("Error invoking master coprocessor preBalance()", ioe);
+        if (this.cpHost.preBalance()) {
+          LOG.debug("Coprocessor bypassing balancer request");
           return false;
         }
       }
@@ -1326,12 +1321,7 @@ Server {
         }
       }
       if (this.cpHost != null) {
-        try {
-          this.cpHost.postBalance();
-        } catch (IOException ioe) {
-          // balancing already succeeded so don't change the result
-          LOG.error("Error invoking master coprocessor postBalance()", ioe);
-        }
+        this.cpHost.postBalance();
       }
     }
     return balancerRan;
@@ -1339,7 +1329,11 @@ Server {
 
   @Override
   public BalanceResponse balance(RpcController c, BalanceRequest request) throws ServiceException {
-    return BalanceResponse.newBuilder().setBalancerRan(balance()).build();
+    try {
+      return BalanceResponse.newBuilder().setBalancerRan(balance()).build();
+    } catch (IOException e) {
+      throw new ServiceException(e);
+    }
   }
 
   enum BalanceSwitchMode {
@@ -2005,14 +1999,10 @@ Server {
     return rsFatals;
   }
 
-  public void shutdown() {
+  public void shutdown() throws IOException {
     spanReceiverHost.closeReceivers();
     if (cpHost != null) {
-      try {
-        cpHost.preShutdown();
-      } catch (IOException ioe) {
-        LOG.error("Error call master coprocessor preShutdown()", ioe);
-      }
+      cpHost.preShutdown();
     }
     if (mxBean != null) {
       MBeanUtil.unregisterMBean(mxBean);
@@ -2032,17 +2022,17 @@ Server {
   @Override
   public ShutdownResponse shutdown(RpcController controller, ShutdownRequest request)
   throws ServiceException {
-    shutdown();
+    try {
+      shutdown();
+    } catch (IOException e) {
+      throw new ServiceException(e);
+    }
     return ShutdownResponse.newBuilder().build();
   }
 
-  public void stopMaster() {
+  public void stopMaster() throws IOException {
     if (cpHost != null) {
-      try {
-        cpHost.preStopMaster();
-      } catch (IOException ioe) {
-        LOG.error("Error call master coprocessor preStopMaster()", ioe);
-      }
+      cpHost.preStopMaster();
     }
     stop("Stopped by " + Thread.currentThread().getName());
   }
@@ -2050,7 +2040,11 @@ Server {
   @Override
   public StopMasterResponse stopMaster(RpcController controller, StopMasterRequest request)
   throws ServiceException {
-    stopMaster();
+    try {
+      stopMaster();
+    } catch (IOException e) {
+      throw new ServiceException(e);
+    }
     return StopMasterResponse.newBuilder().build();
   }
 

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BalancerChore.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BalancerChore.java?rev=1404146&r1=1404145&r2=1404146&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BalancerChore.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BalancerChore.java Wed Oct 31 14:06:40 2012
@@ -18,17 +18,21 @@
 
 package org.apache.hadoop.hbase.master.balancer;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.hbase.Chore;
 import org.apache.hadoop.hbase.master.HMaster;
 
+import java.io.IOException;
+
 /**
  * Chore that will call HMaster.balance{@link org.apache.hadoop.hbase.master.HMaster#balance()} when
  * needed.
  */
 @InterfaceAudience.Private
 public class BalancerChore extends Chore {
-
+  private static final Log LOG = LogFactory.getLog(BalancerChore.class);
   private final HMaster master;
 
   public BalancerChore(HMaster master) {
@@ -40,6 +44,10 @@ public class BalancerChore extends Chore
 
   @Override
   protected void chore() {
-    master.balance();
+    try {
+      master.balance();
+    } catch (IOException ioe) {
+      LOG.error("Error invoking balancer", ioe);
+    }
   }
 }

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java?rev=1404146&r1=1404145&r2=1404146&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/JVMClusterUtil.java Wed Oct 31 14:06:40 2012
@@ -222,7 +222,7 @@ public class JVMClusterUtil {
    * @param regionservers
    */
   public static void shutdown(final List<MasterThread> masters,
-      final List<RegionServerThread> regionservers) {
+      final List<RegionServerThread> regionservers) throws IOException {
     LOG.debug("Shutting down HBase Cluster");
     if (masters != null) {
       // Do backups first.