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 2012/06/09 17:22:43 UTC

[jira] [Commented] (CASSANDRA-4326) IndexOutOfBoundsException on TimeUUIDType.compareTimestampBytes

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

Jonathan Ellis commented on CASSANDRA-4326:
-------------------------------------------

Do you get the same error using UUIDType instead of TimeUUIDType?

Can you reproduce w/ a simple single node test case?
                
> 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:
> {noformat}
> 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?
> {noformat}
> Also, the keys were generated with the following function (which had worked previously):
> {code:borderStyle=solid}
> 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);
> }
> {code} 

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