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