[ 
https://issues.apache.org/jira/browse/CASSANDRA-2373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012114#comment-13012114
 ] 

Sylvain Lebresne commented on CASSANDRA-2373:
---------------------------------------------

Yes, wouldn't be a bad idea. We could check that tombstone values are 4 bytes 
long (that almost could be an assert in ColumnSerializer.deserialize() 
actually, and I assume this is the problem here) and non negative value. 
Expiration time shouldn't be negative either. And if we validate the name and 
value through the validators, that would give an even better confidence that 
nothing is rotten.

> Index Out Of Bounds during Validation Compaction (Repair)
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-2373
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2373
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.4
>         Environment: CentOS on EC2
>            Reporter: Benjamin Coverston
>            Assignee: Sylvain Lebresne
>             Fix For: 0.7.5
>
>
> Stack Trace is below:
> ERROR [CompactionExecutor:1] 2011-03-23 19:11:39,488 
> AbstractCassandraDaemon.java (line 112) Fatal exception in thread 
> Thread[CompactionExecutor:1,1,main]
> java.lang.IndexOutOfBoundsException
>         at java.nio.Buffer.checkIndex(Unknown Source)
>         at java.nio.HeapByteBuffer.getInt(Unknown Source)
>         at 
> org.apache.cassandra.db.DeletedColumn.getLocalDeletionTime(DeletedColumn.java:57)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.removeDeletedStandard(ColumnFamilyStore.java:879)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.removeDeletedColumnsOnly(ColumnFamilyStore.java:866)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.removeDeleted(ColumnFamilyStore.java:857)
>         at 
> org.apache.cassandra.io.PrecompactedRow.<init>(PrecompactedRow.java:94)
>         at 
> org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:147)
>         at 
> org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:108)
>         at 
> org.apache.cassandra.io.CompactionIterator.getReduced(CompactionIterator.java:43)
>         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.doValidationCompaction(CompactionManager.java:822)
>         at 
> org.apache.cassandra.db.CompactionManager.access$800(CompactionManager.java:56)
>         at 
> org.apache.cassandra.db.CompactionManager$6.call(CompactionManager.java:358)
>         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

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

Reply via email to