Patch submitted. One thing I still don't understand is why RetryingScheduledThreadPoolExecutor isn't firing the DefaultUncaughtExceptionHandler, which should have logged that exception.
On Wed, Jan 26, 2011 at 9:41 AM, Jonathan Ellis <jbel...@gmail.com> wrote: > Thanks for tracking that down! Created > https://issues.apache.org/jira/browse/CASSANDRA-2059 to fix. > > On Wed, Jan 26, 2011 at 8:17 AM, Ching-Cheng Chen > <cc...@evidentsoftware.com> wrote: >> It's a bug. >> In SSTableDeletingReference, it try this operation >> components.remove(Component.DATA); >> before >> STable.delete(desc, components); >> However, the components was reference to the components object which was >> created inside SSTable by >> this.components = Collections.unmodifiableSet(dataComponents); >> As you can see, you can't try the remove operation on that componets object. >> If I add a try block and output exception around the >> components.remove(Component.DATA), I got this. >> java.lang.UnsupportedOperationException >> at java.util.Collections$UnmodifiableCollection.remove(Unknown >> Source) >> at >> org.apache.cassandra.io.sstable.SSTableDeletingReference$CleanupTask.run(SSTableDeletingReference.java:103) >> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown >> Source) >> at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) >> at java.util.concurrent.FutureTask.run(Unknown Source) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown >> Source) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown >> Source) >> at >> org.apache.cassandra.concurrent.RetryingScheduledThreadPoolExecutor$LoggingScheduledFuture.run(RetryingScheduledThreadPoolExecutor.java:81) >> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown >> Source) >> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown >> Source) >> at java.lang.Thread.run(Unknown Source) >> Regards, >> Chen >> On Tue, Jan 25, 2011 at 4:21 PM, Jonathan Ellis <jbel...@gmail.com> wrote: >>> >>> the other component types are deleted by this line: >>> >>> SSTable.delete(desc, components); >>> >>> On Tue, Jan 25, 2011 at 3:11 PM, Ching-Cheng Chen >>> <cc...@evidentsoftware.com> wrote: >>> > Nope, no exception at all. >>> > But if the same class >>> > (org.apache.cassandra.io.sstable.SSTableDeletingReference) is >>> > responsible >>> > for delete other files, then that's not right. >>> > I checked the source code for SSTableDeletingReference, doesn't looks >>> > like >>> > it will delete other files type. >>> > Regards, >>> > Chen >>> > >>> > On Tue, Jan 25, 2011 at 4:05 PM, Jonathan Ellis <jbel...@gmail.com> >>> > wrote: >>> >> >>> >> No, that is not expected. All the sstable components are removed in >>> >> the same method; did you check the log for exceptions? >>> >> >>> >> On Tue, Jan 25, 2011 at 2:58 PM, Ching-Cheng Chen >>> >> <cc...@evidentsoftware.com> wrote: >>> >> > Using cassandra 0.7.0 >>> >> > The class org.apache.cassandra.io.sstable.SSTableDeletingReference >>> >> > only >>> >> > remove the xxxx-Data.db file, but leave the xxx-Compacted, >>> >> > xxx-Filter.db, >>> >> > xxx-Index.db and xxx-Statistics.db intact. >>> >> > And that's the behavior I saw. I ran manual compact then trigger a >>> >> > GC >>> >> > from jconsole. The Data.db file got removed but not the others. >>> >> > Is this the expected behavior? >>> >> > Regards, >>> >> > Chen >>> >> >>> >> >>> >> >>> >> -- >>> >> Jonathan Ellis >>> >> Project Chair, Apache Cassandra >>> >> co-founder of DataStax, the source for professional Cassandra support >>> >> http://www.datastax.com >>> > >>> > >>> >>> >>> >>> -- >>> Jonathan Ellis >>> Project Chair, Apache Cassandra >>> co-founder of DataStax, the source for professional Cassandra support >>> http://www.datastax.com >> >> > > > > -- > Jonathan Ellis > Project Chair, Apache Cassandra > co-founder of DataStax, the source for professional Cassandra support > http://www.datastax.com > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of DataStax, the source for professional Cassandra support http://www.datastax.com