HBASE-5152 Region is on service before completing initialization when doing rollback of split,

it will affect read correctness (Chunhui)


git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1229418 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Zhihong Yu 2012-01-09 23:22:37 +00:00
parent 5b4f692019
commit 296cf139aa
2 changed files with 7 additions and 4 deletions

View File

@ -473,6 +473,8 @@ Release 0.92.0 - Unreleased
HBASE-5081 Distributed log splitting deleteNode races against splitLog retry (Prakash)
HBASE-4357 Region stayed in transition - in closing state (Ming Ma)
HBASE-5088 A concurrency issue on SoftValueSortedMap (Jieshan Bean and Lars H)
HBASE-5152 Region is on service before completing initialization when doing rollback of split,
it will affect read correctness (Chunhui)
TESTS
HBASE-4450 test for number of blocks read: to serve as baseline for expected

View File

@ -50,7 +50,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import com.google.common.collect.Maps;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
@ -116,6 +115,7 @@ import org.cliffc.high_scale_lib.Counter;
import com.google.common.base.Preconditions;
import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.MutableClassToInstanceMap;
/**
@ -513,9 +513,6 @@ public class HRegion implements HeapSize { // , Writable{
status.setStatus("Running coprocessor pre-open hook");
coprocessorHost.preOpen();
}
// A region can be reopened if failed a split; reset flags
this.closing.set(false);
this.closed.set(false);
// Write HRI to a file in case we need to recover .META.
status.setStatus("Writing region info on filesystem");
@ -587,11 +584,15 @@ public class HRegion implements HeapSize { // , Writable{
long nextSeqid = maxSeqId + 1;
LOG.info("Onlined " + this.toString() + "; next sequenceid=" + nextSeqid);
// A region can be reopened if failed a split; reset flags
this.closing.set(false);
this.closed.set(false);
if (coprocessorHost != null) {
status.setStatus("Running coprocessor post-open hooks");
coprocessorHost.postOpen();
}
status.markComplete("Region opened successfully");
return nextSeqid;
}