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;
}
/**