You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2009/09/03 00:22:53 UTC

svn commit: r810715 - in /hadoop/hbase/branches/0.20: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java

Author: apurtell
Date: Wed Sep  2 22:22:53 2009
New Revision: 810715

URL: http://svn.apache.org/viewvc?rev=810715&view=rev
Log:
HBASE-1715 Compaction failure in ScanWildcardColumnTracker.checkColumn

Modified:
    hadoop/hbase/branches/0.20/CHANGES.txt
    hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=810715&r1=810714&r2=810715&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Wed Sep  2 22:22:53 2009
@@ -338,7 +338,8 @@
    HBASE-1809  NPE thrown in BoundedRangeFileInputStream
    HBASE-1810  ConcurrentModificationException in region assignment
                (Mathias Herberts via Stack)
-   HBASE-1804 Puts are permitted (and stored) when including an appended colon
+   HBASE-1804  Puts are permitted (and stored) when including an appended colon
+   HBASE-1715  Compaction failure in ScanWildcardColumnTracker.checkColumn
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java?rev=810715&r1=810714&r2=810715&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/ScanWildcardColumnTracker.java Wed Sep  2 22:22:53 2009
@@ -20,6 +20,8 @@
 
 package org.apache.hadoop.hbase.regionserver;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hbase.regionserver.QueryMatcher.MatchCode;
 import org.apache.hadoop.hbase.util.Bytes;
 
@@ -27,6 +29,8 @@
  * Keeps track of the columns for a scan if they are not explicitly specified
  */
 public class ScanWildcardColumnTracker implements ColumnTracker {
+  private static final Log LOG = 
+    LogFactory.getLog(ScanWildcardColumnTracker.class);
   private byte [] columnBuffer = null;
   private int columnOffset = 0;
   private int columnLength = 0;
@@ -79,15 +83,27 @@
       columnOffset = offset;
       columnLength = length;
       currentCount = 0;
-      
       if (++currentCount > maxVersions)
         return MatchCode.SKIP;
       return MatchCode.INCLUDE;
     }
+
     // new col < oldcol
     // if (cmp < 0) {
-    throw new RuntimeException("ScanWildcardColumnTracker.checkColumn ran " +
-    		"into a column actually smaller than the previous column!");
+    // WARNING: This means that very likely an edit for some other family
+    // was incorrectly stored into the store for this one. Continue, but
+    // complain.
+    LOG.error("ScanWildcardColumnTracker.checkColumn ran " +
+  		"into a column actually smaller than the previous column: " +
+      Bytes.toStringBinary(bytes, offset, length));
+    // switched columns
+    columnBuffer = bytes;
+    columnOffset = offset;
+    columnLength = length;
+    currentCount = 0;
+    if (++currentCount > maxVersions)
+      return MatchCode.SKIP;
+    return MatchCode.INCLUDE;    
   }
 
   @Override