You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2014/01/18 00:12:01 UTC
svn commit: r1559277 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
Author: tedyu
Date: Fri Jan 17 23:12:01 2014
New Revision: 1559277
URL: http://svn.apache.org/r1559277
Log:
HBASE-10370 Compaction in out-of-date Store causes region split failure, fix only
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1559277&r1=1559276&r2=1559277&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Fri Jan 17 23:12:01 2014
@@ -1345,6 +1345,14 @@ public class HRegion implements HeapSize
// block waiting for the lock for compaction
lock.readLock().lock();
try {
+ byte[] cf = Bytes.toBytes(store.getColumnFamilyName());
+ if (stores.get(cf) != store) {
+ LOG.warn("Store " + store.getColumnFamilyName() + " on region " + this
+ + " has been re-instantiated, cancel this compaction request. "
+ + " It may be caused by the roll back of split transaction");
+ return false;
+ }
+
status = TaskMonitor.get().createStatus("Compacting " + store + " in " + this);
if (this.closed.get()) {
String msg = "Skipping compaction on " + this + " because closed";