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();