Robin Mahony created CASSANDRA-13624:
----------------------------------------

             Summary: upgradesstables crashes with OOM when upgrading sstables 
with lots of range tombstones
                 Key: CASSANDRA-13624
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13624
             Project: Cassandra
          Issue Type: Bug
            Reporter: Robin Mahony


CASSANDRA-7953 can lead to range tombstones not properly being compacted. When 
trying to upgrade from Cassandra 2.0.X to 2.1.X, running upgradesstables 
(either via nodetool OR the offline version) does not work, as it crashes with 
OOM. This essentially means if you are running a version of Cassandra 2.0.X for 
a period of time where lots of range tombstones have been generated; you will 
be unable to upgrade to Cassandra 2.1.X following the normal procedures. Hence 
upgrade from 2.0.X to 2.1.X is essentially broken if you hit CASSANDRA-7953.

I hit this while trying to upgrade to Cassandra 2.1.17.

Offline Version:

# sstableupgrade storagegrid s3_usage_delta 
Found 15 sstables that need upgrading. 
Upgrading 
SSTableReader(path='/var/local/cassandra/data/0/storagegrid/s3_usage_delta/storagegrid-s3_usage_delta-jb-20230-Data.db')
 
ERROR 22:38:24,626 LEAK DETECTED: a reference 
(org.apache.cassandra.utils.concurrent.Ref$State@6821300e) to class 
org.apache.cassandra.io.sstable.SSTableReader$InstanceTidier@244363601:/var/local/cassandra/data/0/storagegrid/s3_usage_delta/storagegrid-s3_usage_delta-ka-79531
 was not released before the reference was garbage collected 
ERROR 22:38:24,631 LEAK DETECTED: a reference 
(org.apache.cassandra.utils.concurrent.Ref$State@2891457f) to class 
org.apache.cassandra.io.sstable.SSTableReader$InstanceTidier@1230033823:/var/local/cassandra/data/0/storagegrid/s3_usage_delta/storagegrid-s3_usage_delta-ka-79532
 was not released before the reference was garbage collected 
Exception in thread "ScheduledTasks:1" Exception in thread 
"metrics-meter-tick-thread-2" java.lang.OutOfMemoryError: Java heap space 
at java.lang.Class.getName0(Native Method) 
at java.lang.Class.getName(Class.java:642) 
at java.lang.Throwable.toString(Throwable.java:479) 
at java.lang.Throwable.<init>(Throwable.java:311) 
at java.lang.Exception.<init>(Exception.java:102) 
at java.util.concurrent.ExecutionException.<init>(ExecutionException.java:90) 
at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
at 
org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.extractThrowable(DebuggableThreadPoolExecutor.java:246)
at 
org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.logExceptionsAfterExecute(DebuggableThreadPoolExecutor.java:210)
at 
org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.afterExecute(DebuggableScheduledThreadPoolExecutor.java:89)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1150) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
java.lang.OutOfMemoryError: Java heap space 
java.lang.OutOfMemoryError: Java heap space 
ERROR 22:41:21,080 Error in ThreadPoolExecutor 
java.lang.OutOfMemoryError: Java heap space 
ERROR 22:41:21,080 JVM state determined to be unstable. Exiting forcefully due 
to: 
java.lang.OutOfMemoryError: Java heap space 
root@DC1-SN-10-224-6-066:/var/local/cassandra/data/0 #



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to