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

hbase git commit: HBASE-15167 Deadlock in TestNamespaceAuditor.testRegionOperations on 1.1

Repository: hbase
Updated Branches:
  refs/heads/branch-1.1 30707a55e -> 7fc757681


HBASE-15167 Deadlock in TestNamespaceAuditor.testRegionOperations on 1.1


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/7fc75768
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/7fc75768
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/7fc75768

Branch: refs/heads/branch-1.1
Commit: 7fc75768110fcea0664fee4cce3b41e966c455e0
Parents: 30707a5
Author: chenheng <ch...@apache.org>
Authored: Sat Feb 6 22:02:42 2016 +0800
Committer: chenheng <ch...@apache.org>
Committed: Sat Feb 6 22:02:42 2016 +0800

----------------------------------------------------------------------
 .../hbase/namespace/TestNamespaceAuditor.java   | 31 +++++++++++++++-----
 1 file changed, 23 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/7fc75768/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java
index 22fe916..561b1e4 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/namespace/TestNamespaceAuditor.java
@@ -69,6 +69,8 @@ import org.apache.hadoop.hbase.regionserver.HRegion;
 import org.apache.hadoop.hbase.regionserver.HRegionServer;
 import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost;
+import org.apache.hadoop.hbase.regionserver.Store;
+import org.apache.hadoop.hbase.regionserver.StoreFile;
 import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -455,12 +457,13 @@ public class TestNamespaceAuditor {
     assertEquals(1, stateInfo.getTables().size());
     assertEquals(1, stateInfo.getRegionCount());
     restartMaster();
-    ADMIN.split(tableOne, Bytes.toBytes("500"));
+
     HRegion actualRegion = UTIL.getHBaseCluster().getRegions(tableOne).get(0);
-    CustomObserver observer =
-        (CustomObserver) actualRegion.getCoprocessorHost().findCoprocessor(
-          CustomObserver.class.getName());
+    CustomObserver observer = (CustomObserver) actualRegion.getCoprocessorHost().findCoprocessor(
+        CustomObserver.class.getName());
     assertNotNull(observer);
+
+    ADMIN.split(tableOne, Bytes.toBytes("500"));
     observer.postSplit.await();
     assertEquals(2, ADMIN.getTableRegions(tableOne).size());
     actualRegion = UTIL.getHBaseCluster().getRegions(tableOne).get(0);
@@ -468,10 +471,13 @@ public class TestNamespaceAuditor {
         (CustomObserver) actualRegion.getCoprocessorHost().findCoprocessor(
           CustomObserver.class.getName());
     assertNotNull(observer);
-    ADMIN.split(
-      tableOne,
-      getSplitKey(actualRegion.getRegionInfo().getStartKey(), actualRegion.getRegionInfo()
-          .getEndKey()));
+
+    //Before we go on split, we should remove all reference store files.
+    ADMIN.compact(tableOne);
+    observer.postCompact.await();
+
+    ADMIN.split(tableOne, getSplitKey(actualRegion.getRegionInfo().getStartKey(),
+      actualRegion.getRegionInfo().getEndKey()));
     observer.postSplit.await();
     // Make sure no regions have been added.
     List<HRegionInfo> hris = ADMIN.getTableRegions(tableOne);
@@ -552,6 +558,7 @@ public class TestNamespaceAuditor {
   public static class CustomObserver extends BaseRegionObserver {
     volatile CountDownLatch postSplit;
     volatile CountDownLatch preSplitBeforePONR;
+    volatile CountDownLatch postCompact;
 
     @Override
     public void postCompleteSplit(ObserverContext<RegionCoprocessorEnvironment> ctx)
@@ -560,15 +567,23 @@ public class TestNamespaceAuditor {
     }
 
     @Override
+    public void postCompact(ObserverContext<RegionCoprocessorEnvironment> e,
+                            Store store, StoreFile resultFile) throws IOException {
+      postCompact.countDown();
+    }
+
+    @Override
     public void preSplitBeforePONR(ObserverContext<RegionCoprocessorEnvironment> ctx,
         byte[] splitKey, List<Mutation> metaEntries) throws IOException {
       preSplitBeforePONR.countDown();
     }
 
+
     @Override
     public void start(CoprocessorEnvironment e) throws IOException {
       postSplit = new CountDownLatch(1);
       preSplitBeforePONR = new CountDownLatch(1);
+      postCompact = new CountDownLatch(1);
     }
   }