Klay created CASSANDRA-20182:
--------------------------------

             Summary: Legacy data (2.2) migration fails
                 Key: CASSANDRA-20182
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20182
             Project: Apache Cassandra
          Issue Type: Bug
            Reporter: Klay


I am trying to migrate legacy data (2.2) to the latest version following the 
path 2.2 => 3.0 => 4.0.

However, when migrating data from 2.2.19 to 3.0.30, I observed that the upgrade 
process could crash for certain data.
h1. Reproduce

Start up a cassandra 2.2.19 (single node is enough). Execute the following 
commands

 
{code:java}
CREATE KEYSPACE IF NOT EXISTS ks WITH REPLICATION = { 'class' : 
'SimpleStrategy', 'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (id INT, value INT, PRIMARY KEY (id));
DELETE value FROM ks.tb WHERE id = 3;
ALTER TABLE ks.tb DROP value ;
ALTER TABLE ks.tb ADD value TEXT ; {code}
Flush and start up 3.0.30, the start up crashes with the following logs

 
{code:java}
ERROR 04:03:06 Exception in thread Thread[MemtablePostFlush:1,5,main]
java.lang.AssertionError: null
        at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:197)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:137)
        at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
        at 
org.apache.cassandra.db.ColumnIndex.writeAndBuildIndex(ColumnIndex.java:49)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:149)
        at 
org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:45)
        at 
org.apache.cassandra.io.sstable.SSTableTxnWriter.append(SSTableTxnWriter.java:52)
        at 
org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:390)
        at org.apache.cassandra.db.Memtable.flush(Memtable.java:328)
        at 
org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1098)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83)
        at java.lang.Thread.run(Thread.java:750)
Exception (java.lang.RuntimeException) encountered during startup: 
java.util.concurrent.ExecutionException: java.lang.AssertionError
java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
java.lang.AssertionError
        at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:62)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:420)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:383)
        at 
org.apache.cassandra.db.commitlog.CommitLogReplayer.blockForWrites(CommitLogReplayer.java:267)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:188)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:168)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:342)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:636)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:837)
Caused by: java.util.concurrent.ExecutionException: java.lang.AssertionError
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:407)
        ... 7 more
Caused by: java.lang.AssertionError
        at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:197)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:137)
        at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
        at 
org.apache.cassandra.db.ColumnIndex.writeAndBuildIndex(ColumnIndex.java:49)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:149)
        at 
org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:45)
        at 
org.apache.cassandra.io.sstable.SSTableTxnWriter.append(SSTableTxnWriter.java:52)
        at 
org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:390)
        at org.apache.cassandra.db.Memtable.flush(Memtable.java:328)
        at 
org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1098)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83)
        at java.lang.Thread.run(Thread.java:750)
ERROR 04:03:06 Exception encountered during startup
java.lang.RuntimeException: java.util.concurrent.ExecutionException: 
java.lang.AssertionError
        at org.apache.cassandra.utils.Throwables.maybeFail(Throwables.java:62)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:420)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:383)
        at 
org.apache.cassandra.db.commitlog.CommitLogReplayer.blockForWrites(CommitLogReplayer.java:267)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:188)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:168)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:342)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:636)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:837)
Caused by: java.util.concurrent.ExecutionException: java.lang.AssertionError
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at 
org.apache.cassandra.utils.FBUtilities.waitOnFutures(FBUtilities.java:407)
        ... 7 common frames omitted
Caused by: java.lang.AssertionError: null
        at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:197)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:137)
        at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
        at 
org.apache.cassandra.db.ColumnIndex.writeAndBuildIndex(ColumnIndex.java:49)
        at 
org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:149)
        at 
org.apache.cassandra.io.sstable.SimpleSSTableMultiWriter.append(SimpleSSTableMultiWriter.java:45)
        at 
org.apache.cassandra.io.sstable.SSTableTxnWriter.append(SSTableTxnWriter.java:52)
        at 
org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:390)
        at org.apache.cassandra.db.Memtable.flush(Memtable.java:328)
        at 
org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1098)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:83)
        at java.lang.Thread.run(Thread.java:750) {code}
 

 

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to