Kristoffer Carlson created CASSANDRA-4326:
---------------------------------------------

             Summary: IndexOutOfBoundsException on 
TimeUUIDType.compareTimestampBytes
                 Key: CASSANDRA-4326
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4326
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.1.1
         Environment: Cassandra 1.1.1 running on CentOS 6.0 64bit. 5 nodes, 
mixed hardware.
            Reporter: Kristoffer Carlson


I get the following exception when performing a query on two indexed columns 
(both UTF8Type) with TimeUUIDType as the column families key validation class:

java.lang.RuntimeException: java.lang.IndexOutOfBoundsException
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1254)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(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.get(Unknown Source)
        at 
org.apache.cassandra.db.marshal.TimeUUIDType.compareTimestampBytes(TimeUUIDType.java:76)
        at 
org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:65)
        at 
org.apache.cassandra.db.marshal.TimeUUIDType.compare(TimeUUIDType.java:37)
        at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:45)
        at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:89)
        at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:38)
        at java.util.concurrent.ConcurrentSkipListMap.findPredecessor(Unknown 
Source)
        at java.util.concurrent.ConcurrentSkipListMap.findNode(Unknown Source)
        at java.util.concurrent.ConcurrentSkipListMap.doGet(Unknown Source)
        at java.util.concurrent.ConcurrentSkipListMap.get(Unknown Source)
        at org.apache.cassandra.db.Memtable.resolve(Memtable.java:235)
        at org.apache.cassandra.db.Memtable.put(Memtable.java:156)
        at 
org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:742)
        at 
org.apache.cassandra.db.index.keys.KeysIndex.deleteColumn(KeysIndex.java:82)
        at 
org.apache.cassandra.db.index.SecondaryIndexManager.applyIndexUpdates(SecondaryIndexManager.java:460)
        at org.apache.cassandra.db.Table.apply(Table.java:441)
        at org.apache.cassandra.db.Table.apply(Table.java:366)
        at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:294)
        at 
org.apache.cassandra.service.StorageProxy$6.runMayThrow(StorageProxy.java:453)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1250)
        ... 3 more
ERROR [Selector-Thread-0] 2012-06-09 13:43:21,878 TNonblockingServer.java (line 
468) Read an invalid frame size of 0. Are you using TFramedTransport on the 
client side?


Also, the keys were generated with the following function (which had worked 
previously):

    public static UUID convertLegacyIdToUuid(long millis, long userId)
    {
        long time = millis * 10000 + 0x01b21dd213814000L;
        long timeLow = time & 0xffffffffL;
        long timeMid = time & 0xffff00000000L;
        long timeHi = time & 0xfff000000000000L;
        long upperLong = ( timeLow << 32 ) | ( timeMid >> 16 ) | ( 1 << 12 ) | 
( timeHi >> 48 );
        return new UUID(upperLong, userId);
    }


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to