Author: jbellis
Date: Tue Sep  7 18:32:12 2010
New Revision: 993457

URL: http://svn.apache.org/viewvc?rev=993457&view=rev
Log:
bulletproof sstable deletionprocess.  patch by jbellis; reviewed by Stu Hood 
for CASSANDRA-1458

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/io/SSTableDeletingReference.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=993457&r1=993456&r2=993457&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Tue Sep  7 18:32:12 2010
@@ -11,6 +11,7 @@
    it out after 1h (CASSANDRA-1463)
  * eager-create tcp connections to other cluster members (CASSANDRA-1465)
  * make sure to close CommitLog files after replay (CASSANDRA-1348)
+ * bulletproof sstable deletion process (CASSANDRA-1458)
 
 
 0.6.5

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/io/SSTableDeletingReference.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/io/SSTableDeletingReference.java?rev=993457&r1=993456&r2=993457&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/io/SSTableDeletingReference.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/io/SSTableDeletingReference.java
 Tue Sep  7 18:32:12 2010
@@ -82,14 +82,17 @@ public class SSTableDeletingReference ex
             {
                 if (attempts++ < DeletionService.MAX_RETRIES)
                 {
-                    timer.schedule(this, RETRY_DELAY);
+                    timer.schedule(new CleanupTask(), RETRY_DELAY); // 
re-using TimerTasks is not allowed
                     return;
                 }
                 else
                 {
-                    throw new RuntimeException("Unable to delete " + path);
+                    // don't throw an exception; it will prevent any future 
tasks from running in this Timer
+                    logger.error("Unable to delete " + datafile + " (it will 
be removed on server restart)");
+                    return;
                 }
             }
+
             try
             {
                 FileUtils.deleteWithConfirm(new 
File(SSTable.indexFilename(path)));


Reply via email to