HBASE-4452 Possibility of RS opening a region though tickleOpening fails due to
znode version mismatch (Ramkrishna) git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1174447 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a6249ee3b4
commit
1bd5e4032c
|
@ -291,6 +291,8 @@ Release 0.91.0 - Unreleased
|
|||
HBASE-3421 Very wide rows -- 30M plus -- cause us OOME (Nate Putnam)
|
||||
HBASE-4153 Handle RegionAlreadyInTransitionException in AssignmentManager
|
||||
(Ramkrishna)
|
||||
HBASE-4452 Possibility of RS opening a region though tickleOpening fails due to
|
||||
znode version mismatch (Ramkrishna)
|
||||
|
||||
TESTS
|
||||
HBASE-4450 test for number of blocks read: to serve as baseline for expected
|
||||
|
|
|
@ -169,13 +169,14 @@ public class OpenRegionHandler extends EventHandler {
|
|||
// 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 {
|
||||
|
@ -204,8 +205,9 @@ public class OpenRegionHandler extends EventHandler {
|
|||
}
|
||||
|
||||
// Was there an exception opening the region? This should trigger on
|
||||
// InterruptedException too. If so, we failed.
|
||||
return !Thread.interrupted() && t.getException() == null;
|
||||
// InterruptedException too. If so, we failed. Even if tickle opening fails
|
||||
// then it is a failure.
|
||||
return ((!Thread.interrupted() && t.getException() == null) && tickleOpening);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue