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