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