You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2010/07/19 19:25:52 UTC

[jira] Updated: (CASSANDRA-1299) EOFException in LazilyCompactedRow

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

Jonathan Ellis updated CASSANDRA-1299:
--------------------------------------

    Attachment: 1299.txt

CASSANDRA-270 exposed a long-standing bug in SSTableUtils where it was writing garbage data while bypassing memtable to assemble its own SSTables by hand.  It needs to limit the data passed to SSTableWriter to the actual valid data in the DataOutputBuffer.  Attached is a patch that takes the simplest approach to this by copying out only the valid data into a separate byte[].  Ideally I'd prefer to remove the append(key, byte[]) method entirely but that will have to wait until we have a BMT replacement.

> EOFException in LazilyCompactedRow
> ----------------------------------
>
>                 Key: CASSANDRA-1299
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1299
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Stu Hood
>            Assignee: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.7
>
>         Attachments: 1299.txt
>
>
> Post CASSANDRA-270, 'ant clean long-test' fails with an EOFException in LazilyCompactedRow.
> {code}java.io.IOError: java.io.EOFException
> 	at org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:103)
> 	at org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:32)
> 	at org.apache.commons.collections.iterators.CollatingIterator.set(CollatingIterator.java:284)
> 	at org.apache.commons.collections.iterators.CollatingIterator.least(CollatingIterator.java:326)
> 	at org.apache.commons.collections.iterators.CollatingIterator.next(CollatingIterator.java:230)
> 	at org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:68)
> 	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
> 	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
> 	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:604)
> 	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
> 	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
> 	at org.apache.cassandra.db.ColumnIndexer.serializeInternal(ColumnIndexer.java:76)
> 	at org.apache.cassandra.db.ColumnIndexer.serialize(ColumnIndexer.java:50)
> 	at org.apache.cassandra.io.LazilyCompactedRow.<init>(LazilyCompactedRow.java:62)
> 	at org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:135)
> 	at org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:107)
> 	at org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:46)
> 	at org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:73)
> 	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:136)
> 	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:131)
> 	at org.apache.commons.collections.iterators.FilterIterator.setNextObject(FilterIterator.java:183)
> 	at org.apache.commons.collections.iterators.FilterIterator.hasNext(FilterIterator.java:94)
> 	at org.apache.cassandra.db.CompactionManager.doCompaction(CompactionManager.java:334)
> 	at org.apache.cassandra.db.LongCompactionSpeedTest.testCompaction(LongCompactionSpeedTest.java:101)
> 	at org.apache.cassandra.db.LongCompactionSpeedTest.testCompactionWide(LongCompactionSpeedTest.java:49)
> Caused by: java.io.EOFException
> 	at java.io.RandomAccessFile.readInt(RandomAccessFile.java:725)
> 	at java.io.RandomAccessFile.readLong(RandomAccessFile.java:758)
> 	at org.apache.cassandra.db.TimestampClockSerializer.deserialize(TimestampClock.java:128)
> 	at org.apache.cassandra.db.TimestampClockSerializer.deserialize(TimestampClock.java:119)
> 	at org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:90)
> 	at org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:31)
> 	at org.apache.cassandra.io.sstable.SSTableIdentityIterator.next(SSTableIdentityIterator.java:99)
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.