You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by je...@apache.org on 2014/03/28 18:50:38 UTC
svn commit: r1582844 - in /hbase/branches/0.96:
hbase-client/src/main/java/org/apache/hadoop/hbase/client/
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/
hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/
Author: jeffreyz
Date: Fri Mar 28 17:50:37 2014
New Revision: 1582844
URL: http://svn.apache.org/r1582844
Log:
HBASE-10809: HBaseAdmin#deleteTable fails when META region happen to move around same time
Modified:
hbase/branches/0.96/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java
Modified: hbase/branches/0.96/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1582844&r1=1582843&r2=1582844&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.96/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Mar 28 17:50:37 2014
@@ -618,7 +618,6 @@ public class HBaseAdmin implements Abort
* @throws IOException if a remote or network exception occurs
*/
public void deleteTable(final TableName tableName) throws IOException {
- HRegionLocation firstMetaServer = getFirstMetaServerForTable(tableName);
boolean tableExists = true;
executeCallable(new MasterCallable<Void>(getConnection()) {
@@ -630,10 +629,11 @@ public class HBaseAdmin implements Abort
}
});
+ int failures = 0;
// Wait until all regions deleted
for (int tries = 0; tries < (this.numRetries * this.retryLongerMultiplier); tries++) {
try {
-
+ HRegionLocation firstMetaServer = getFirstMetaServerForTable(tableName);
Scan scan = MetaReader.getScanForTableName(tableName);
scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER);
ScanRequest request = RequestConverter.buildScanRequest(
@@ -672,7 +672,8 @@ public class HBaseAdmin implements Abort
}
}
} catch (IOException ex) {
- if(tries == numRetries - 1) { // no more tries left
+ failures++;
+ if(failures == numRetries - 1) { // no more tries left
if (ex instanceof RemoteException) {
throw ((RemoteException) ex).unwrapRemoteException();
} else {
Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1582844&r1=1582843&r2=1582844&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Fri Mar 28 17:50:37 2014
@@ -2607,9 +2607,11 @@ public class HRegionServer implements Cl
String regionNameStr = regionName == null?
encodedRegionName: Bytes.toStringBinary(regionName);
if (isOpening != null && isOpening.booleanValue()) {
- throw new RegionOpeningException("Region " + regionNameStr + " is opening");
+ throw new RegionOpeningException("Region " + regionNameStr +
+ " is opening on " + this.serverNameFromMasterPOV);
}
- throw new NotServingRegionException("Region " + regionNameStr + " is not online");
+ throw new NotServingRegionException("Region " + regionNameStr +
+ " is not online on " + this.serverNameFromMasterPOV);
}
return region;
}
Modified: hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java?rev=1582844&r1=1582843&r2=1582844&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java (original)
+++ hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java Fri Mar 28 17:50:37 2014
@@ -114,7 +114,7 @@ public class TestRowProcessorEndpoint {
Configuration conf = util.getConfiguration();
conf.setStrings(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY,
RowProcessorEndpoint.class.getName());
- conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 1);
+ conf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 2);
conf.setLong("hbase.hregion.row.processor.timeout", 1000L);
util.startMiniCluster();
}