Index: src/test/java/org/apache/hadoop/hbase/executor/TestExecutorService.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/executor/TestExecutorService.java (revision 1090059) +++ src/test/java/org/apache/hadoop/hbase/executor/TestExecutorService.java (working copy) @@ -28,10 +28,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.Server; import org.apache.hadoop.hbase.executor.EventHandler.EventType; import org.apache.hadoop.hbase.executor.ExecutorService.Executor; import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType; import org.junit.Test; +import static org.mockito.Mockito.*; public class TestExecutorService { private static final Log LOG = LogFactory.getLog(TestExecutorService.class); @@ -42,6 +45,9 @@ int maxTries = 10; int sleepInterval = 10; + Server mockedServer = mock(Server.class); + when(mockedServer.getConfiguration()).thenReturn(HBaseConfiguration.create()); + // Start an executor service pool with max 5 threads ExecutorService executorService = new ExecutorService("unit_test"); executorService.startExecutorService( Index: src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java (revision 1090059) +++ src/test/java/org/apache/hadoop/hbase/replication/TestReplication.java (working copy) @@ -96,7 +96,6 @@ conf1.setLong("replication.source.sleepforretries", 100); conf1.setInt("hbase.regionserver.maxlogs", 10); conf1.setLong("hbase.master.logcleaner.ttl", 10); - conf1.setLong("hbase.client.retries.number", 5); conf1.setBoolean(HConstants.REPLICATION_ENABLE_KEY, true); conf1.setBoolean("dfs.support.append", true); conf1.setLong(HConstants.THREAD_WAKE_FREQUENCY, 100); Index: src/test/resources/hbase-site.xml =================================================================== --- src/test/resources/hbase-site.xml (revision 1090059) +++ src/test/resources/hbase-site.xml (working copy) @@ -32,13 +32,13 @@ hbase.client.pause - 5000 + 1000 General client pause value. Used mostly as value to wait before running a retry of a failed get, region lookup, etc. hbase.client.retries.number - 4 + 10 Maximum retries. Used as maximum for all retryable operations such as fetching of the root region from root region server, getting a cell's value, starting a row update, etc. @@ -53,6 +53,12 @@ + hbase.master.event.waiting.time + 50 + Time to sleep between checks to see if a table event took place. + + + hbase.regionserver.handler.count 5 Count of RPC Server instances spun up on RegionServers Index: src/main/java/org/apache/hadoop/hbase/master/handler/DeleteTableHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/handler/DeleteTableHandler.java (revision 1090059) +++ src/main/java/org/apache/hadoop/hbase/master/handler/DeleteTableHandler.java (working copy) @@ -53,7 +53,7 @@ while (System.currentTimeMillis() < done) { AssignmentManager.RegionState rs = am.isRegionInTransition(region); if (rs == null) break; - Threads.sleep(1000); + Threads.sleep(waitingTimeForEvents); LOG.debug("Waiting on region to clear regions in transition; " + rs); } if (am.isRegionInTransition(region) != null) { Index: src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java (revision 1090059) +++ src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java (working copy) @@ -142,7 +142,7 @@ long remaining = timeout; List regions = null; while (!server.isStopped() && remaining > 0) { - Thread.sleep(1000); + Thread.sleep(waitingTimeForEvents); regions = assignmentManager.getRegionsOfTable(tableName); if (regions.isEmpty()) break; remaining = timeout - (System.currentTimeMillis() - startTime); Index: src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java (revision 1090059) +++ src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java (working copy) @@ -164,7 +164,7 @@ long remaining = timeout; List regions = null; while (!server.isStopped() && remaining > 0) { - Thread.sleep(1000); + Thread.sleep(waitingTimeForEvents); regions = assignmentManager.getRegionsOfTable(tableName); if (isDone(regions)) break; remaining = timeout - (System.currentTimeMillis() - startTime); Index: src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java (revision 1090059) +++ src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java (working copy) @@ -70,6 +70,9 @@ // Listener to call pre- and post- processing. May be null. private EventHandlerListener listener; + // Time to wait for events to happen, should be kept short + protected final int waitingTimeForEvents; + /** * This interface provides pre- and post-process hooks for events. */ @@ -143,6 +146,8 @@ this.server = server; this.eventType = eventType; seqid = seqids.incrementAndGet(); + this.waitingTimeForEvents = server.getConfiguration(). + getInt("hbase.master.event.waiting.time", 1000); } public void run() {