cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Morton (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CASSANDRA-2747) memtable flush during index build causes AssertionError
Date Tue, 07 Jun 2011 19:44:00 GMT
memtable flush during index build causes AssertionError
-------------------------------------------------------

                 Key: CASSANDRA-2747
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2747
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.8.0
            Reporter: Aaron Morton
            Assignee: Aaron Morton


Noticed when loading a lot of rows and then creating secondary indexes using update CF via
the CLI. 

{code:java}
ERROR 18:56:25,008 Fatal exception in thread Thread[FlushWriter:3,5,main]
java.lang.AssertionError
        at org.apache.cassandra.io.sstable.SSTable.<init>(SSTable.java:91)
        at org.apache.cassandra.io.sstable.SSTableWriter.<init>(SSTableWriter.java:71)
        at org.apache.cassandra.db.ColumnFamilyStore.createFlushWriter(ColumnFamilyStore.java:2124)
        at org.apache.cassandra.db.Memtable.writeSortedContents(Memtable.java:246)
        at org.apache.cassandra.db.Memtable.access$400(Memtable.java:49)
        at org.apache.cassandra.db.Memtable$3.runMayThrow(Memtable.java:270)
        at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
        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)
{code}

Table.IndexBuilder.build() calls cfs.maybeSwitchMemtable() with writeCommitLog false. So a
null ReplayPosition is eventually passed to Memtable.writeSortedContents(). 

SSTableRead.open() checks Descriptor.hasReplayPosition() and it looks like any 0.8 stats file
should have a ReplayPosition. 

Looks like cfs.maybeSwitchMemtable() should use ReplayPosition.NONE rather than null. Patch
looks easy, will also try to write a test.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message