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

Mike Nadeau commented on CASSANDRA-2104:
----------------------------------------

Hi,

I'm also getting an IndexOutOfBounds exception when compacting.

Here's the detailed error I get on screen when running "nodetool -h 10.3.133.10 
compact":

Error occured while compacting keyspace test
java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    at 
org.apache.cassandra.db.CompactionManager.performMajor(CompactionManager.java:186)
    at 
org.apache.cassandra.db.ColumnFamilyStore.forceMajorCompaction(ColumnFamilyStore.java:1678)
    at 
org.apache.cassandra.service.StorageService.forceTableCompaction(StorageService.java:1248)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown 
Source)
    at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(Unknown 
Source)
    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(Unknown Source)
    at com.sun.jmx.mbeanserver.PerInterface.invoke(Unknown Source)
    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(Unknown Source)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(Unknown 
Source)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(Unknown Source)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown Source)
    at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown Source)
    at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown 
Source)
    at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown 
Source)
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
    at sun.rmi.transport.Transport$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.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)
Caused by: 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:822)
    at 
org.apache.cassandra.db.ColumnFamilyStore.removeDeletedColumnsOnly(ColumnFamilyStore.java:809)
    at 
org.apache.cassandra.db.ColumnFamilyStore.removeDeleted(ColumnFamilyStore.java:800)
    at org.apache.cassandra.io.PrecompactedRow.<init>(PrecompactedRow.java:94)
    at 
org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:139)
    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.doCompaction(CompactionManager.java:427)
    at 
org.apache.cassandra.db.CompactionManager$3.call(CompactionManager.java:217)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    ... 3 more

And here's the error I'm getting in my log file:

ERROR [CompactionExecutor:1] 2011-03-09 19:16:52,299 
AbstractCassandraDaemon.java (line 114) 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:822)
    at 
org.apache.cassandra.db.ColumnFamilyStore.removeDeletedColumnsOnly(ColumnFamilyStore.java:809)
    at 
org.apache.cassandra.db.ColumnFamilyStore.removeDeleted(ColumnFamilyStore.java:800)
    at org.apache.cassandra.io.PrecompactedRow.<init>(PrecompactedRow.java:94)
    at 
org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:139)
    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.doCompaction(CompactionManager.java:427)
    at 
org.apache.cassandra.db.CompactionManager$3.call(CompactionManager.java:217)
    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)

I run Cassandra 0.7.2. We have 8 machines in the cluster, the error happens 
only on one machine. I'm not sure it's the same issue than this ticket but it's 
the only reference I found about compacting and IndexOutOfBounds. We're not 
inserting any SuperColumn in that database.

Thanks for the help.

> IndexOutOfBoundsException during lazy row compaction of supercolumns
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-2104
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2104
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Daniel Lundin
>            Assignee: Sylvain Lebresne
>             Fix For: 0.7.3
>
>         Attachments: 
> 0001-Use-the-right-comparator-when-deserializing-superCol.patch, 
> Unit-test.patch
>
>   Original Estimate: 8h
>  Remaining Estimate: 8h
>
> I ran into an exception when lazily compacting wide rows of TimeUUID columns.
> It seems to trigger when a row is larger than 
> {{in_memory_compaction_limit_in_mb}}.
> Traceback:
> {noformat}
>  INFO [CompactionExecutor:1] 2011-02-03 10:59:59,262 CompactionIterator.java 
> (line 135) Compacting large row XXXXXXXXXXXXX (76999384 bytes) incrementally
>  ERROR [CompactionExecutor:1] 2011-02-03 10:59:59,266 
> AbstractCassandraDaemon.java (line 114) Fatal exception in thread T
>  hread[CompactionExecutor:1,1,main]
>  java.lang.IndexOutOfBoundsException
>          at java.nio.Buffer.checkIndex(Buffer.java:514)
>          at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:121)
>          at 
> org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:56)
>          at 
> org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:45)
>          at 
> org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:29)
>          at 
> java.util.concurrent.ConcurrentSkipListMap$ComparableUsingComparator.compareTo(ConcurrentSkipListMap.java:606
>  )
>          at 
> java.util.concurrent.ConcurrentSkipListMap.findPredecessor(ConcurrentSkipListMap.java:685)
>          at 
> java.util.concurrent.ConcurrentSkipListMap.doPut(ConcurrentSkipListMap.java:864)
>          at 
> java.util.concurrent.ConcurrentSkipListMap.putIfAbsent(ConcurrentSkipListMap.java:1893)
>          at 
> org.apache.cassandra.db.SuperColumn.addColumn(SuperColumn.java:170)
>          at 
> org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:195)
>          at 
> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:221)
>          at 
> org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:204)
>          at 
> org.apache.cassandra.io.LazilyCompactedRow$LazyColumnIterator.reduce(LazilyCompactedRow.java:185)
>          at 
> org.apache.cassandra.utils.ReducingIterator.computeNext(ReducingIterator.java:62)
>          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:88)
>          at 
> org.apache.cassandra.io.CompactionIterator.getCompactedRow(CompactionIterator.java:137)
>          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.doCompaction(CompactionManager.java:426)
>          at 
> org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:122)
>          at 
> org.apache.cassandra.db.CompactionManager$1.call(CompactionManager.java:92)
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>          at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>          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)
> {noformat}

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

Reply via email to