[ 
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.

Reply via email to