You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aaron Morton (JIRA)" <ji...@apache.org> on 2011/06/07 22:03:58 UTC

[jira] [Resolved] (CASSANDRA-2747) memtable flush during index build causes AssertionError

     [ https://issues.apache.org/jira/browse/CASSANDRA-2747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aaron Morton resolved CASSANDRA-2747.
-------------------------------------

    Resolution: Duplicate

Was looking at the 0.8.0 tag, fixed in the 0.8 branch. 

Changes says CASSANDRA-2781 but this issue does not exist yet.
"
avoid NPE when bypassing commitlog during memtable flush (CASSANDRA-2781)
" 

> 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