[
https://issues.apache.org/jira/browse/CASSANDRA-3039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis updated CASSANDRA-3039:
--------------------------------------
Attachment: 3039.txt
Patch to make cleanup and normal compaction able to skip empty rows (rows
containing nothing but expired tombstones).
Scrub can already handle these, so you can workaround by scrubbing frequently,
but if your workload results in a lot of these rows you probably want to apply
this patch sooner than later.
> AssertionError on nodetool cleanup
> ----------------------------------
>
> Key: CASSANDRA-3039
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3039
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.8.4
> Environment: Distributor ID: Ubuntu
> Description: Ubuntu 10.10
> Release: 10.10
> Codename: maverick
> AWS: m2.xlarge instance
> 6 Node Cluster
> Reporter: Ray Slakinski
> Labels: exception, nodetool
> Fix For: 0.8.5
>
> Attachments: 3039.txt
>
>
> While doing a cleanup I got the following AssertionError, I have tried a
> scrub and a major compaction before the cleanup which has not helped.
> ST:
> INFO 18:49:58,540 Scrubbing
> SSTableReader(path='/vol/cassandra/data/system/LocationInfo-g-93-Data.db')
> INFO 18:49:58,834 Scrub of
> SSTableReader(path='/vol/cassandra/data/system/LocationInfo-g-93-Data.db')
> complete: 4 rows in new sstable and 0 empty (tombstoned) rows dropped
> INFO 18:49:58,913 Scrubbing
> SSTableReader(path='/vol/cassandra/data/system/Migrations-g-56-Data.db')
> INFO 18:49:59,218 Scrub of
> SSTableReader(path='/vol/cassandra/data/system/Migrations-g-56-Data.db')
> complete: 1 rows in new sstable and 0 empty (tombstoned) rows dropped
> INFO 18:49:59,256 Scrubbing
> SSTableReader(path='/vol/cassandra/data/system/Schema-g-58-Data.db')
> INFO 18:49:59,323 Scrub of
> SSTableReader(path='/vol/cassandra/data/system/Schema-g-58-Data.db')
> complete: 34 rows in new sstable and 0 empty (tombstoned) rows dropped
> INFO 18:49:59,416 Scrubbing
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5074-Data.db')
> INFO 18:50:50,137 Scrub of
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5074-Data.db')
> complete: 91735 rows in new sstable and 32 empty (tombstoned) rows dropped
> INFO 18:50:50,137 Scrubbing
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5075-Data.db')
> INFO 18:50:53,075 Scrub of
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5075-Data.db')
> complete: 27940 rows in new sstable and 0 empty (tombstoned) rows dropped
> INFO 18:50:53,089 Scrubbing
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content-g-238-Data.db')
> INFO 18:51:10,302 Scrub of
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content-g-238-Data.db')
> complete: 70815 rows in new sstable and 0 empty (tombstoned) rows dropped
> INFO 18:53:05,420 Cleaning up
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5078-Data.db')
> INFO 18:53:13,266 Cleaned up to
> /vol/cassandra/data/SpiderServices/Content2-tmp-g-5079-Data.db. 198,705,176
> to 198,705,176 (~100% of original) bytes for 27,940 keys. Time: 7,846ms.
> INFO 18:53:13,267 Cleaning up
> SSTableReader(path='/vol/cassandra/data/SpiderServices/Content2-g-5077-Data.db')
> ERROR 18:53:33,913 Fatal exception in thread
> Thread[CompactionExecutor:21,1,RMI Runtime]
> java.lang.AssertionError
> at
> org.apache.cassandra.db.compaction.PrecompactedRow.write(PrecompactedRow.java:107)
> at
> org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:132)
> at
> org.apache.cassandra.db.compaction.CompactionManager.doCleanupCompaction(CompactionManager.java:866)
> at
> org.apache.cassandra.db.compaction.CompactionManager.access$500(CompactionManager.java:65)
> at
> org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:204)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira