Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Cannot Reproduce
-
None
-
None
-
None
-
Linux version 2.6.21.7-2.fc8xen (mockbuild@xenbuilder4.fedora.phx.redhat.com)
-
Normal
Description
I have a CF with composite column sort:
ColumnFamily: MyCF Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type Default column value validator: org.apache.cassandra.db.marshal.UTF8Type Columns sorted by: org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.AsciiType,org.apache.cassandra.db.marshal.IntegerType) Row cache size / save period in seconds / keys to save : 0.0/0/all Row Cache Provider: org.apache.cassandra.cache.SerializingCacheProvider Key cache size / save period in seconds: 200000.0/14400 GC grace seconds: 864000 Compaction min/max thresholds: 4/32 Read repair chance: 0.1 Replicate on write: true Bloom Filter FP chance: default Built indexes: [] Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy Compression Options: chunk_length_kb: 64 sstable_compression: org.apache.cassandra.io.compress.SnappyCompressor
I'm using phpcassa to communicate with my Cassandra cluster.
I'm getting the following exception from time to time while reading/writing to this CF:
exception 'cassandra_InvalidRequestException' with message 'Invalid bytes remaining after an end-of-component at component1' in /phpcassa/thrift/packages/cassandra/Cassandra.php:256\nStack trace: #0 /phpcassa/thrift/packages/cassandra/Cassandra.php(256): thrift_protocol_read_binary(Object(TBinaryProtocolAccelerated), 'cassandra_Cassa...', false) #1 /phpcassa/thrift/packages/cassandra/Cassandra.php(229): CassandraClient->recv_get_slice() #2 [internal function]: CassandraClient->get_slice('6034-28141406', Object(cassandra_ColumnParent), Object(cassandra_SlicePredicate), 2) ...
I've thoroughly checked my code, I'm always sending the same parameters to Cassandra, and there's no format error. My column name request is always AsciiType:IntegerType.
The weird part is that this is completely random. If I run a get() query once, I get the exception, but the following request with the same parameters succeeds.