Index: src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (revision 1330352) +++ src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (working copy) @@ -214,8 +214,6 @@ conf.getInt("hbase.master.assignment.timeoutmonitor.period", 10000), master, serverManager, conf.getInt("hbase.master.assignment.timeoutmonitor.timeout", 1800000)); - Threads.setDaemonThreadRunning(timeoutMonitor.getThread(), - master.getServerName() + ".timeoutMonitor"); this.zkTable = new ZKTable(this.master.getZooKeeper()); this.maximumAssignmentAttempts = this.master.getConfiguration().getInt("hbase.assignment.maximum.attempts", 10); @@ -224,6 +222,11 @@ this.masterMetrics = metrics;// can be null only with tests. } + void startTimeOutMonitor() { + Threads.setDaemonThreadRunning(timeoutMonitor.getThread(), master.getServerName() + + ".timeoutMonitor"); + } + /** * Compute the average load across all region servers. * Currently, this uses a very naive computation - just uses the number of Index: src/main/java/org/apache/hadoop/hbase/master/HMaster.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/HMaster.java (revision 1330352) +++ src/main/java/org/apache/hadoop/hbase/master/HMaster.java (working copy) @@ -567,6 +567,7 @@ } } + this.assignmentManager.startTimeOutMonitor(); Set onlineServers = new HashSet(serverManager .getOnlineServers().keySet()); // TODO: Should do this in background rather than block master startup