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