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";