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:44:50 UTC
svn commit: r1582842 - in /hbase/branches/0.98:
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:44:49 2014
New Revision: 1582842
URL: http://svn.apache.org/r1582842
Log:
HBASE-10809: HBaseAdmin#deleteTable fails when META region happen to move around same time
Modified:
hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java
Modified: hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1582842&r1=1582841&r2=1582842&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/branches/0.98/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Mar 28 17:44:49 2014
@@ -626,7 +626,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()) {
@@ -638,10 +637,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(
@@ -680,7 +680,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.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1582842&r1=1582841&r2=1582842&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/branches/0.98/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Fri Mar 28 17:44:49 2014
@@ -2667,9 +2667,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.98/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java?rev=1582842&r1=1582841&r2=1582842&view=diff
==============================================================================
--- hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java (original)
+++ hbase/branches/0.98/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRowProcessorEndpoint.java Fri Mar 28 17:44:49 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();
}