You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/01/05 22:07:20 UTC

svn commit: r1055639 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java

Author: stack
Date: Wed Jan  5 21:07:20 2011
New Revision: 1055639

URL: http://svn.apache.org/viewvc?rev=1055639&view=rev
Log:
HBASE-3420 Handling a big rebalance, we can queue multiple instances of a Close event; messes up state

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1055639&r1=1055638&r2=1055639&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Jan  5 21:07:20 2011
@@ -816,6 +816,8 @@ Release 0.90.0 - Unreleased
    HBASE-3402  Web UI shows two META regions
    HBASE-3409  Failed server shutdown processing when retrying hlog split
    HBASE-3412  HLogSplitter should handle missing HLogs
+   HBASE-3420  Handling a big rebalance, we can queue multiple instances of
+               a Close event; messes up state
 
 
   IMPROVEMENTS

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1055639&r1=1055638&r2=1055639&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Wed Jan  5 21:07:20 2011
@@ -1567,11 +1567,13 @@ public class AssignmentManager extends Z
             // Expired!  Do a retry.
             switch (regionState.getState()) {
               case CLOSED:
-                LOG.info("Region has been CLOSED for too long, " +
-                    "retriggering ClosedRegionHandler");
-                AssignmentManager.this.executorService.submit(
-                    new ClosedRegionHandler(master, AssignmentManager.this,
-                        regionState.getRegion()));
+                LOG.info("Region " + regionInfo.getEncodedName() +
+                  " has been CLOSED for too long, waiting on queued " +
+                  "ClosedRegionHandler to run or server shutdown");
+                // Update our timestamp.
+                synchronized(regionState) {
+                  regionState.update(regionState.getState());
+                }
                 break;
               case OFFLINE:
                 LOG.info("Region has been OFFLINE for too long, " +