You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vi...@apache.org on 2014/12/18 20:31:24 UTC
[1/2] hbase git commit: HBASE-12694
testTableExistsIfTheSpecifiedTableRegionIsSplitParent in
TestSplitTransactionOnCluster class leaves regions in transition (Vandana
Ayyalasomayajula)
Repository: hbase
Updated Branches:
refs/heads/branch-1 effbe8588 -> 7fbee896f
refs/heads/master 9ae615f82 -> 3caae6239
HBASE-12694 testTableExistsIfTheSpecifiedTableRegionIsSplitParent in TestSplitTransactionOnCluster class leaves regions in transition (Vandana Ayyalasomayajula)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7fbee896
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7fbee896
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7fbee896
Branch: refs/heads/branch-1
Commit: 7fbee896f488405bc883a533f842c77422dee18d
Parents: effbe85
Author: Virag Kothari <vi...@yahoo-inc.com>
Authored: Thu Dec 18 11:29:02 2014 -0800
Committer: Virag Kothari <vi...@yahoo-inc.com>
Committed: Thu Dec 18 11:29:02 2014 -0800
----------------------------------------------------------------------
.../hbase/regionserver/SplitTransaction.java | 2 +-
.../TestSplitTransactionOnCluster.java | 42 +++++++++++++++++---
2 files changed, 38 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/7fbee896/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
index 06e726f..5215433 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/SplitTransaction.java
@@ -94,7 +94,7 @@ public class SplitTransaction {
private HRegionInfo hri_b;
private long fileSplitTimeout = 30000;
public SplitTransactionCoordination.SplitTransactionDetails std;
- boolean useZKForAssignment;
+ boolean useZKForAssignment = true;
/*
* Row to split around
http://git-wip-us.apache.org/repos/asf/hbase/blob/7fbee896/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
index 99de513..84e7d26 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
@@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.testclassification.LargeTests;
+import org.apache.hadoop.hbase.CoprocessorEnvironment;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.MiniHBaseCluster;
import org.apache.hadoop.hbase.RegionTransition;
@@ -306,7 +307,10 @@ public class TestSplitTransactionOnCluster {
this.admin.split(region.getRegionName(), new byte[] {42});
// we have to wait until the SPLITTING state is seen by the master
- FailingSplitRegionObserver.latch.await();
+ FailingSplitRegionObserver observer = (FailingSplitRegionObserver) region
+ .getCoprocessorHost().findCoprocessor(FailingSplitRegionObserver.class.getName());
+ assertNotNull(observer);
+ observer.latch.await();
LOG.info("Waiting for region to come out of RIT");
TESTING_UTIL.waitFor(60000, 1000, new Waiter.Predicate<Exception>() {
@@ -372,13 +376,26 @@ public class TestSplitTransactionOnCluster {
}
public static class FailingSplitRegionObserver extends BaseRegionObserver {
- static volatile CountDownLatch latch = new CountDownLatch(1);
+ volatile CountDownLatch latch;
+ volatile CountDownLatch postSplit;
+ @Override
+ public void start(CoprocessorEnvironment e) throws IOException {
+ latch = new CountDownLatch(1);
+ postSplit = new CountDownLatch(1);
+ }
@Override
public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx,
byte[] splitKey, List<Mutation> metaEntries) throws IOException {
latch.countDown();
+ LOG.info("Causing rollback of region split");
throw new IOException("Causing rollback of region split");
}
+ @Override
+ public void postCompleteSplit(ObserverContext<RegionCoprocessorEnvironment> ctx)
+ throws IOException {
+ postSplit.countDown();
+ LOG.info("postCompleteSplit called");
+ }
}
/**
@@ -917,10 +934,20 @@ public class TestSplitTransactionOnCluster {
tableExists = MetaTableAccessor.tableExists(regionServer.getConnection(),
tableName);
assertEquals("The specified table should present.", true, tableExists);
+ Map<String, RegionState> rit = cluster.getMaster().getAssignmentManager().getRegionStates()
+ .getRegionsInTransition();
+ assertTrue(rit.size() == 3);
+ cluster.getMaster().getAssignmentManager().regionOffline(st.getFirstDaughter());
+ cluster.getMaster().getAssignmentManager().regionOffline(st.getSecondDaughter());
+ cluster.getMaster().getAssignmentManager().regionOffline(region.getRegionInfo());
+ rit = cluster.getMaster().getAssignmentManager().getRegionStates()
+ .getRegionsInTransition();
+ assertTrue(rit.size() == 0);
} finally {
admin.setBalancerRunning(true, false);
cluster.getMaster().setCatalogJanitorEnabled(true);
t.close();
+ TESTING_UTIL.deleteTable(tableName);
}
}
@@ -1164,7 +1191,7 @@ public class TestSplitTransactionOnCluster {
}
}
- @Test
+ @Test(timeout = 120000)
public void testFailedSplit() throws Exception {
TableName tableName = TableName.valueOf("testFailedSplit");
byte[] colFamily = Bytes.toBytes("info");
@@ -1181,18 +1208,23 @@ public class TestSplitTransactionOnCluster {
// The following split would fail.
admin.split(tableName);
- FailingSplitRegionObserver.latch.await();
+ FailingSplitRegionObserver observer = (FailingSplitRegionObserver) actualRegion
+ .getCoprocessorHost().findCoprocessor(FailingSplitRegionObserver.class.getName());
+ assertNotNull(observer);
+ observer.latch.await();
+ observer.postSplit.await();
LOG.info("Waiting for region to come out of RIT");
TESTING_UTIL.waitFor(60000, 1000, new Waiter.Predicate<Exception>() {
@Override
public boolean evaluate() throws Exception {
RegionStates regionStates = cluster.getMaster().getAssignmentManager().getRegionStates();
Map<String, RegionState> rit = regionStates.getRegionsInTransition();
- return !rit.containsKey(actualRegion.getRegionInfo().getEncodedName());
+ return (rit.size() == 0);
}
});
regions = TESTING_UTIL.getHBaseAdmin().getTableRegions(tableName);
assertTrue(regions.size() == 1);
+ assertTrue(admin.balancer());
} finally {
table.close();
connection.close();
[2/2] hbase git commit: Revert "HBASE-12694
testTableExistsIfTheSpecifiedTableRegionIsSplitParent in
TestSplitTransactionOnCluster class leaves regions in transition (Vandana
Ayyalasomayajula)"
Posted by vi...@apache.org.
Revert "HBASE-12694 testTableExistsIfTheSpecifiedTableRegionIsSplitParent in TestSplitTransactionOnCluster class leaves regions in transition (Vandana Ayyalasomayajula)"
This reverts commit 9ae615f82bc0521b7301bb5ea99f0367fc20f746.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3caae623
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3caae623
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3caae623
Branch: refs/heads/master
Commit: 3caae62390615aa2568794247fb6193582490642
Parents: 9ae615f
Author: Virag Kothari <vi...@yahoo-inc.com>
Authored: Thu Dec 18 11:29:39 2014 -0800
Committer: Virag Kothari <vi...@yahoo-inc.com>
Committed: Thu Dec 18 11:29:39 2014 -0800
----------------------------------------------------------------------
.../TestSplitTransactionOnCluster.java | 21 ++------------------
1 file changed, 2 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/3caae623/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
index 0d574f6..4138027 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
@@ -41,7 +41,6 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Abortable;
import org.apache.hadoop.hbase.CoordinatedStateManager;
import org.apache.hadoop.hbase.Coprocessor;
-import org.apache.hadoop.hbase.CoprocessorEnvironment;
import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
@@ -201,10 +200,7 @@ public class TestSplitTransactionOnCluster {
this.admin.split(region.getRegionName(), new byte[] {42});
// we have to wait until the SPLITTING state is seen by the master
- FailingSplitRegionObserver observer = (FailingSplitRegionObserver) region
- .getCoprocessorHost().findCoprocessor(FailingSplitRegionObserver.class.getName());
- assertNotNull(observer);
- observer.latch.await();
+ FailingSplitRegionObserver.latch.await();
LOG.info("Waiting for region to come out of RIT");
TESTING_UTIL.waitFor(60000, 1000, new Waiter.Predicate<Exception>() {
@@ -270,11 +266,7 @@ public class TestSplitTransactionOnCluster {
}
public static class FailingSplitRegionObserver extends BaseRegionObserver {
- volatile CountDownLatch latch;
- @Override
- public void start(CoprocessorEnvironment e) throws IOException {
- latch = new CountDownLatch(1);
- }
+ static volatile CountDownLatch latch = new CountDownLatch(1);
@Override
public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx,
byte[] splitKey, List<Mutation> metaEntries) throws IOException {
@@ -657,19 +649,10 @@ public class TestSplitTransactionOnCluster {
tableExists = MetaTableAccessor.tableExists(regionServer.getConnection(),
tableName);
assertEquals("The specified table should present.", true, tableExists);
- Map<String, RegionState> rit = cluster.getMaster().getAssignmentManager().getRegionStates()
- .getRegionsInTransition();
- assertTrue(rit.size() == 3);
- cluster.getMaster().getAssignmentManager().regionOffline(st.getFirstDaughter());
- cluster.getMaster().getAssignmentManager().regionOffline(st.getSecondDaughter());
- cluster.getMaster().getAssignmentManager().regionOffline(region.getRegionInfo());
- rit = cluster.getMaster().getAssignmentManager().getRegionStates().getRegionsInTransition();
- assertTrue(rit.size() == 0);
} finally {
admin.setBalancerRunning(true, false);
cluster.getMaster().setCatalogJanitorEnabled(true);
t.close();
- TESTING_UTIL.deleteTable(tableName);
}
}