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