Author: tedyu
Date: Thu Sep 22 23:05:26 2011
New Revision: 1174443

URL: http://svn.apache.org/viewvc?rev=1174443&view=rev
Log:
HBASE-4452  Possibility of RS opening a region though tickleOpening fails due to
               znode version mismatch (Ramkrishna)

Modified:
    hbase/branches/0.90/CHANGES.txt
    
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1174443&r1=1174442&r2=1174443&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Thu Sep 22 23:05:26 2011
@@ -58,6 +58,8 @@ Release 0.90.5 - Unreleased
    HBASE-4453  TestReplication failing up on builds.a.o because already running
                zk with new format root servername
    HBASE-4449  LoadIncrementalHFiles can't handle CFs with blooms (David 
Revell)
+   HBASE-4452  Possibility of RS opening a region though tickleOpening fails 
due to
+               znode version mismatch (Ramkrishna)
 
   IMPROVEMENT
    HBASE-4205  Enhance HTable javadoc (Eric Charles)

Modified: 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java?rev=1174443&r1=1174442&r2=1174443&view=diff
==============================================================================
--- 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
 (original)
+++ 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java
 Thu Sep 22 23:05:26 2011
@@ -154,13 +154,14 @@ public class OpenRegionHandler extends E
     // regions-in-transition timeout period.
     long period = Math.max(1, assignmentTimeout/ 3);
     long lastUpdate = now;
+    boolean tickleOpening = true;
     while (!signaller.get() && t.isAlive() && !this.server.isStopped() &&
         !this.rsServices.isStopping() && (endTime > now)) {
       long elapsed = now - lastUpdate;
       if (elapsed > period) {
         // Only tickle OPENING if postOpenDeployTasks is taking some time.
         lastUpdate = now;
-        tickleOpening("post_open_deploy");
+        tickleOpening = tickleOpening("post_open_deploy");
       }
       synchronized (signaller) {
         try {
@@ -188,8 +189,9 @@ public class OpenRegionHandler extends E
       }
     }
     // Was there an exception opening the region?  This should trigger on
-    // InterruptedException too.  If so, we failed.
-    return !t.interrupted() && t.getException() == null;
+    // InterruptedException too.  If so, we failed. If tickle opening fails
+    // it is a failure
+    return !t.interrupted() && t.getException() == null && tickleOpening;
   }
 
   /**


Reply via email to