Author: stack
Date: Fri Sep  9 03:47:00 2011
New Revision: 1166982

URL: http://svn.apache.org/viewvc?rev=1166982&view=rev
Log:
HBASE-4350 Fix a Bloom filter bug introduced by HFile v2 and 
TestMultiColumnScanner that caught it

Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanDeleteTracker.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1166982&r1=1166981&r2=1166982&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Sep  9 03:47:00 2011
@@ -251,6 +251,8 @@ Release 0.91.0 - Unreleased
                (Jan Lukavsky)
    HBASE-4015  Refactor the TimeoutMonitor to make it less racy
                (ramkrishna.s.vasudevan)
+   HBASE-4350  Fix a Bloom filter bug introduced by HFile v2 and
+               TestMultiColumnScanner that caught it (Mikhail Bautin)
            
                
 

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanDeleteTracker.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanDeleteTracker.java?rev=1166982&r1=1166981&r2=1166982&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanDeleteTracker.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanDeleteTracker.java
 Fri Sep  9 03:47:00 2011
@@ -130,7 +130,11 @@ public class ScanDeleteTracker implement
         // Next column case.
         deleteBuffer = null;
       } else {
-        //Should never happen, throw Exception
+        throw new IllegalStateException("isDelete failed: deleteBuffer="
+            + Bytes.toStringBinary(deleteBuffer, deleteOffset, deleteLength)
+            + ", qualifier="
+            + Bytes.toStringBinary(buffer, qualifierOffset, qualifierLength)
+            + ", timestamp=" + timestamp + ", comparison result: " + ret);
       }
     }
 

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java?rev=1166982&r1=1166981&r2=1166982&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java 
(original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java 
Fri Sep  9 03:47:00 2011
@@ -1073,6 +1073,9 @@ public class StoreFile {
 
     private boolean passesBloomFilter(Scan scan,
         final SortedSet<byte[]> columns) {
+      if (!scan.isGetScan())
+        return true;
+
       BloomFilter bloomFilter = this.bloomFilter;
       if (bloomFilter == null) {
         return true;


Reply via email to