You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/08/03 00:05:36 UTC
svn commit: r1153289 - in /cassandra/trunk:
src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
test/unit/org/apache/cassandra/db/DefsTest.java
Author: jbellis
Date: Tue Aug 2 22:05:34 2011
New Revision: 1153289
URL: http://svn.apache.org/viewvc?rev=1153289&view=rev
Log:
fix race between reference-counted cleanup and scrub in DefsTest
patch by jbellis
Modified:
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java?rev=1153289&r1=1153288&r2=1153289&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTableDeletingTask.java Tue Aug 2 22:05:34 2011
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.util.Collections;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Sets;
@@ -94,5 +95,28 @@ public class SSTableDeletingTask extends
task.schedule();
}
}
+
+ /** for tests */
+ public static void waitForDeletions()
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ }
+ };
+ try
+ {
+ StorageService.tasks.schedule(runnable, 0, TimeUnit.MILLISECONDS).get();
+ }
+ catch (InterruptedException e)
+ {
+ throw new AssertionError(e);
+ }
+ catch (ExecutionException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
}
Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1153289&r1=1153288&r2=1153289&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java Tue Aug 2 22:05:34 2011
@@ -50,6 +50,7 @@ import org.apache.cassandra.db.migration
import org.apache.cassandra.io.SerDeUtils;
import org.apache.cassandra.io.sstable.Component;
import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.sstable.SSTableDeletingTask;
import org.apache.cassandra.locator.OldNetworkTopologyStrategy;
import org.apache.cassandra.locator.SimpleStrategy;
import org.apache.cassandra.net.MessagingService;
@@ -811,7 +812,7 @@ public class DefsTest extends CleanupHel
// check
assert cfs.getIndexedColumns().isEmpty();
- ColumnFamilyStore.scrubDataDirectories("Keyspace6", "Indexed1");
+ SSTableDeletingTask.waitForDeletions();
assert !new File(desc.filenameFor(Component.DATA)).exists();
}