Author: jbellis
Date: Wed Mar  9 16:57:14 2011
New Revision: 1079882

URL: http://svn.apache.org/viewvc?rev=1079882&view=rev
Log:
add test for #2296

Modified:
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
    
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ScrubTest.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1079882&r1=1079881&r2=1079882&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
 Wed Mar  9 16:57:14 2011
@@ -657,7 +657,10 @@ public class CompactionManager implement
             else
             {
                 cfs.markCompacted(Arrays.asList(sstable));
-                logger.warn("No valid rows found while scrubbing " + sstable + 
"; it is marked for deletion now. If you want to attempt manual recovery, you 
can find a copy in the pre-scrub snapshot");
+                if (badRows > 0)
+                    logger.warn("No valid rows found while scrubbing " + 
sstable + "; it is marked for deletion now. If you want to attempt manual 
recovery, you can find a copy in the pre-scrub snapshot");
+                else
+                    logger.info("Scrub of " + sstable + " complete; looks like 
all " + emptyRows + " rows were tombstoned");
             }
         }
     }

Modified: 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ScrubTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ScrubTest.java?rev=1079882&r1=1079881&r2=1079882&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ScrubTest.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/ScrubTest.java
 Wed Mar  9 16:57:14 2011
@@ -46,6 +46,7 @@ public class ScrubTest extends CleanupHe
     public String TABLE = "Keyspace1";
     public String CF = "Standard1";
     public String CF2 = "Super5";
+    public String CF3 = "Standard2";
     public String  corruptSSTableName;
 
     
@@ -129,6 +130,25 @@ public class ScrubTest extends CleanupHe
     }
 
     @Test
+    public void testScrubDeletedRow() throws IOException, ExecutionException, 
InterruptedException, ConfigurationException
+    {
+        CompactionManager.instance.disableAutoCompaction();
+        Table table = Table.open(TABLE);
+        ColumnFamilyStore cfs = table.getColumnFamilyStore(CF3);
+
+        RowMutation rm;
+        rm = new RowMutation(TABLE, ByteBufferUtil.bytes(1));
+        ColumnFamily cf = ColumnFamily.create(TABLE, CF3);
+        cf.delete(0, 1); // expired tombstone
+        rm.add(cf);
+        rm.applyUnsafe();
+        cfs.forceBlockingFlush();
+
+        CompactionManager.instance.performScrub(cfs);
+        assert cfs.getSSTables().isEmpty();
+    }
+
+    @Test
     public void testScrubMultiRow() throws IOException, ExecutionException, 
InterruptedException, ConfigurationException
     {
         CompactionManager.instance.disableAutoCompaction();


Reply via email to