You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/10/20 07:12:20 UTC
svn commit: r1024524 - in /hbase/trunk: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
Author: stack
Date: Wed Oct 20 05:12:19 2010
New Revision: 1024524
URL: http://svn.apache.org/viewvc?rev=1024524&view=rev
Log:
HBASE-3128 On assign, if ConnectException, reassign another server
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1024524&r1=1024523&r2=1024524&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Oct 20 05:12:19 2010
@@ -1018,6 +1018,7 @@ Release 0.21.0 - Unreleased
HBASE-3115 HBaseClient wastes 1 TCP packet per RPC
HBASE-3076 Allow to disable automatic shipping of dependency jars
for mapreduce jobs (Bruno Dumon)
+ HBASE-3128 On assign, if ConnectException, reassign another server
NEW FEATURES
HBASE-1961 HBase EC2 scripts
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1024524&r1=1024523&r2=1024524&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Wed Oct 20 05:12:19 2010
@@ -729,7 +729,7 @@ public class AssignmentManager extends Z
} catch (Throwable t) {
LOG.warn("Failed assignment of " +
state.getRegion().getRegionNameAsString() + " to " +
- plan.getDestination(), t);
+ plan.getDestination() + ", trying to assign elsewhere instead", t);
// Clean out plan we failed execute and one that doesn't look like it'll
// succeed anyways; we need a new plan!
this.regionPlans.remove(state.getRegion().getEncodedName());
@@ -873,18 +873,11 @@ public class AssignmentManager extends Z
try {
serverManager.sendRegionClose(regions.get(region), state.getRegion());
} catch (IOException e) {
- if (e instanceof RemoteException) {
- e = ((RemoteException)e).unwrapRemoteException();
- }
- if (e instanceof NotServingRegionException) {
- LOG.warn("Attempted to close region " + region.getRegionNameAsString() +
- " but got an NSRE", e);
- }
- // For now call abort if unexpected exception -- seeing it up in hudson.
+ // For now call abort if unexpected exception -- radical, but will get fellas attention.
// St.Ack 20101012
this.master.abort("Remote unexpected exception", e);
} catch (Throwable t) {
- // For now call abort if unexpected exception -- seeing it up in hudson.
+ // For now call abort if unexpected exception -- radical, but will get fellas attention.
// St.Ack 20101012
this.master.abort("Unexpected exception", t);
}
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java?rev=1024524&r1=1024523&r2=1024524&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/ServerManager.java Wed Oct 20 05:12:19 2010
@@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.PleaseHol
import org.apache.hadoop.hbase.Server;
import org.apache.hadoop.hbase.Stoppable;
import org.apache.hadoop.hbase.YouAreDeadException;
+import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.HConnection;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.ipc.HRegionInterface;
@@ -48,7 +49,6 @@ import org.apache.hadoop.hbase.master.ha
import org.apache.hadoop.hbase.master.metrics.MasterMetrics;
import org.apache.hadoop.hbase.regionserver.Leases.LeaseStillHeldException;
import org.apache.hadoop.hbase.util.Threads;
-import org.apache.hadoop.ipc.RemoteException;
import org.apache.hadoop.util.StringUtils;
/**
@@ -558,21 +558,24 @@ public class ServerManager {
hri.closeRegion(region);
}
- private HRegionInterface getServerConnection(HServerInfo info) {
- try {
- HConnection connection =
- HConnectionManager.getConnection(this.master.getConfiguration());
- HRegionInterface hri = serverConnections.get(info.getServerName());
- if (hri == null) {
- LOG.debug("New connection to " + info.getServerName());
- hri = connection.getHRegionConnection(info.getServerAddress(), false);
- serverConnections.put(info.getServerName(), hri);
- }
- return hri;
- } catch (IOException e) {
- LOG.error("Error connecting to region server", e);
- throw new RuntimeException("Fatal error connection to RS", e);
+ /**
+ * @param info
+ * @return
+ * @throws IOException
+ * @throws RetriesExhaustedException wrapping a ConnectException if failed
+ * putting up proxy.
+ */
+ private HRegionInterface getServerConnection(HServerInfo info)
+ throws IOException {
+ HConnection connection =
+ HConnectionManager.getConnection(this.master.getConfiguration());
+ HRegionInterface hri = serverConnections.get(info.getServerName());
+ if (hri == null) {
+ LOG.debug("New connection to " + info.getServerName());
+ hri = connection.getHRegionConnection(info.getServerAddress(), false);
+ this.serverConnections.put(info.getServerName(), hri);
}
+ return hri;
}
/**