You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jm...@apache.org on 2015/02/22 21:55:54 UTC

[21/50] [abbrv] hbase git commit: HBASE-12992 TestChoreService doesn't close services, that can break test on slow virtual hosts (Andrey Stepachev)

HBASE-12992 TestChoreService doesn't close services, that can break test on slow virtual hosts (Andrey Stepachev)


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

Branch: refs/heads/hbase-11339
Commit: 9d6b237ae8676750c97dad2b9d2655dbd43f67fa
Parents: eea9873
Author: tedyu <yu...@gmail.com>
Authored: Mon Feb 9 12:15:23 2015 -0800
Committer: tedyu <yu...@gmail.com>
Committed: Mon Feb 9 12:15:23 2015 -0800

----------------------------------------------------------------------
 .../apache/hadoop/hbase/TestChoreService.java   | 53 +++++++++++++++++---
 1 file changed, 46 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/9d6b237a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestChoreService.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestChoreService.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestChoreService.java
index ed5fa60..b1bad3d 100644
--- a/hbase-common/src/test/java/org/apache/hadoop/hbase/TestChoreService.java
+++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/TestChoreService.java
@@ -90,7 +90,7 @@ public class TestChoreService {
         try {
           Thread.sleep(getPeriod() * 2);
         } catch (InterruptedException e) {
-          e.printStackTrace();
+          //e.printStackTrace();
         }
       }
     }
@@ -258,6 +258,7 @@ public class TestChoreService {
     }
 
     assertFalse(brokeOutOfLoop);
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -272,6 +273,7 @@ public class TestChoreService {
     chore1.cancel(true);
     assertFalse(chore1.isScheduled());
     assertTrue(service.getNumberOfScheduledChores() == 0);
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -308,7 +310,7 @@ public class TestChoreService {
   }
 
   @Test (timeout=20000)
-  public void testChoreServiceConstruction() {
+  public void testChoreServiceConstruction() throws InterruptedException {
     final int corePoolSize = 10;
     final int defaultCorePoolSize = ChoreService.MIN_CORE_POOL_SIZE;
 
@@ -320,6 +322,11 @@ public class TestChoreService {
 
     ChoreService invalidInit = new ChoreService(TEST_SERVER_NAME, -10);
     assertEquals(defaultCorePoolSize, invalidInit.getCorePoolSize());
+
+    shutdownService(customInit);
+    shutdownService(defaultInit);
+    shutdownService(invalidInit);
+
   }
 
   @Test (timeout=20000)
@@ -336,6 +343,15 @@ public class TestChoreService {
 
     Thread.sleep(10 * period);
     assertTrue(chore.getCountOfChoreCalls() == 21);
+
+    shutdownService(service);
+  }
+
+  public void shutdownService(ChoreService service) throws InterruptedException {
+    service.shutdown();
+    while (!service.isTerminated()) {
+      Thread.sleep(100);
+    }
   }
 
   @Test (timeout=20000)
@@ -367,6 +383,8 @@ public class TestChoreService {
     Thread.sleep(10 * period + delta);
 
     assertTrue(chore.getCountOfChoreCalls() == 26);
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -402,13 +420,15 @@ public class TestChoreService {
     Thread.sleep(slowChorePeriod * 10);
     assertEquals("Chores are missing their start time. Should expand core pool size", 5,
       service.getCorePoolSize());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
   public void testCorePoolDecrease() throws InterruptedException {
     final int initialCorePoolSize = 3;
     ChoreService service = new ChoreService(TEST_SERVER_NAME, initialCorePoolSize);
-    final int chorePeriod = 10;
+    final int chorePeriod = 100;
 
     // Slow chores always miss their start time and thus the core pool size should be at least as
     // large as the number of running slow chores
@@ -504,6 +524,8 @@ public class TestChoreService {
     Thread.sleep(chorePeriod * 10);
     assertEquals(service.getNumberOfChoresMissingStartTime(), 2);
     assertEquals("Should not change", 3, service.getCorePoolSize());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -541,6 +563,8 @@ public class TestChoreService {
     dn5.cancel();
     Thread.sleep(sleepTime);
     assertEquals("Scheduled chore mismatch", 0, service.getNumberOfScheduledChores());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -580,6 +604,8 @@ public class TestChoreService {
     sc5.cancel();
     Thread.sleep(sleepTime);
     assertEquals(0, service.getNumberOfChoresMissingStartTime());
+
+    shutdownService(service);
   }
 
   /**
@@ -591,7 +617,7 @@ public class TestChoreService {
   public void testMaximumChoreServiceThreads() throws InterruptedException {
     ChoreService service = new ChoreService(TEST_SERVER_NAME);
 
-    final int period = 10;
+    final int period = 100;
     final int sleepTime = 5 * period;
 
     // Slow chores sleep for a length of time LONGER than their period. Thus, SlowChores
@@ -628,6 +654,8 @@ public class TestChoreService {
 
     Thread.sleep(sleepTime);
     assertTrue(service.getCorePoolSize() <= service.getNumberOfScheduledChores());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -655,6 +683,8 @@ public class TestChoreService {
     assertTrue(!chore.isInitialChoreComplete());
     assertTrue(chore.getTimeOfLastRun() == -1);
     assertTrue(chore.getTimeOfThisRun() == -1);
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -689,6 +719,9 @@ public class TestChoreService {
     assertFalse(service1.isChoreScheduled(chore));
     assertFalse(service2.isChoreScheduled(chore));
     assertTrue(chore.getChoreServicer() == null);
+
+    shutdownService(service1);
+    shutdownService(service2);
   }
 
   @Test (timeout=20000)
@@ -714,6 +747,8 @@ public class TestChoreService {
     assertTrue(chore.triggerNow());
     Thread.sleep(sleep);
     assertEquals(5, chore.getCountOfChoreCalls());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -765,6 +800,8 @@ public class TestChoreService {
     assertFalse(chore1_group2.isScheduled());
     assertFalse(chore2_group2.isScheduled());
     assertFalse(chore3_group2.isScheduled());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -782,7 +819,7 @@ public class TestChoreService {
     assertTrue(service.scheduleChore(successChore3));
     assertTrue(successChore3.isScheduled());
 
-    service.shutdown();
+    shutdownService(service);
 
     assertFalse(successChore1.isScheduled());
     assertFalse(successChore2.isScheduled());
@@ -803,7 +840,7 @@ public class TestChoreService {
     assertTrue(service.scheduleChore(slowChore3));
 
     Thread.sleep(sleep / 2);
-    service.shutdown();
+    shutdownService(service);
 
     assertFalse(slowChore1.isScheduled());
     assertFalse(slowChore2.isScheduled());
@@ -812,6 +849,8 @@ public class TestChoreService {
 
     Thread.sleep(5);
     assertTrue(service.isTerminated());
+
+    shutdownService(service);
   }
 
   @Test (timeout=20000)
@@ -832,7 +871,7 @@ public class TestChoreService {
     assertTrue(service.scheduleChore(successChore3));
     assertTrue(successChore3.isScheduled());
 
-    service.shutdown();
+    shutdownService(service);
 
     assertFalse(service.scheduleChore(failChore1));
     assertFalse(failChore1.isScheduled());