cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aaron morton <aa...@thelastpickle.com>
Subject Re: Cassandra/Pelops error processing get_slice
Date Sat, 16 Oct 2010 19:50:32 GMT
Frank, 

	Things are a bit clearer now. Think I had the wrong idea to start with. 

	The server side error means this cassandra node does not know about the column family it
was asked to read. I guess either the schema are out of sync on the nodes or there is a bug.
How did you add the Keyspace?  

	Check the keyspace definition on each node using either JConsole, nodetool or cassandra-cli
to see if they match. There is a function called describe_schema_versions() on the 0.7 API,
if your client supports it will tell you which schema versions are active in your cluster.
Am guessing you have more than one active schema. 

	You should probably get a better error message. Can you raise a bug for that please. 

Cheers 
Aaron
On 16 Oct 2010, at 06:17, Frank LoVecchio wrote:

> Aaron,
> 
> I updated the cassandra files and but still receive the same error (on client side) with
a different line number 551:
> 
> org.apache.thrift.TApplicationException: Internal error processing get_slice
> 	at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
> 	at org.apache.cassandra.thrift.Cassandra$Client.recv_get_slice(Cassandra.java:551)
> 	at org.apache.cassandra.thrift.Cassandra$Client.get_slice(Cassandra.java:531)
> 	at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:538)
> 	at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:535)
> 	at org.scale7.cassandra.pelops.Operand.tryOperation(Operand.java:45)
> 	at org.scale7.cassandra.pelops.Selector.getSuperColumnsFromRow(Selector.java:545)
> 	at org.scale7.cassandra.pelops.Selector.getSuperColumnsFromRow(Selector.java:522)
> 	at com.isidorey.cassandra.dao.CassandraDAO.getSuperColumnsByKey(CassandraDAO.java:36)
> 	at com.isidorey.cassandra.dao.CassandraDAO.getSuperColumnMap(CassandraDAO.java:82)
> 
> On the server side, this is what we're seeing in Cassandra's log file:
> 
> ERROR [pool-1-thread-2486] 2010-10-15 17:15:39,740 Cassandra.java (line 2876) Internal
error processing get_slice
> java.lang.RuntimeException: org.apache.cassandra.db.UnserializableColumnFamilyException:
Couldn't find cfId=1052
> 	at org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:133)
> 	at org.apache.cassandra.thrift.CassandraServer.getSlice(CassandraServer.java:222)
> 	at org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:300)
> 	at org.apache.cassandra.thrift.CassandraServer.get_slice(CassandraServer.java:261)
> 	at org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(Cassandra.java:2868)
> 	at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2724)
> 	at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:167)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 	at java.lang.Thread.run(Thread.java:636)
> Caused by: org.apache.cassandra.db.UnserializableColumnFamilyException: Couldn't find
cfId=1052
> 	at org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:113)
> 	at org.apache.cassandra.db.RowSerializer.deserialize(Row.java:76)
> 	at org.apache.cassandra.db.ReadResponseSerializer.deserialize(ReadResponse.java:114)
> 	at org.apache.cassandra.db.ReadResponseSerializer.deserialize(ReadResponse.java:90)
> 	at org.apache.cassandra.service.StorageProxy.weakRead(StorageProxy.java:289)
> 	at org.apache.cassandra.service.StorageProxy.readProtocol(StorageProxy.java:220)
> 	at org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:120)
> 
> 
> On Thu, Oct 14, 2010 at 6:29 PM, Aaron Morton <aaron@thelastpickle.com> wrote:
> Am guessing but it looks like cassandra returned an error and the client then had trouble
reading the error. 
> 
> However if I look at the Beta 2 java thrift interface in Cassandra.java, line 544 is
not in recv_get_slice. May be nothing. 
> 
> Perhaps check the server for an error and double check your client is coded for beta
2. 
> 
> Hope that helps. 
> 
> Aaron
> 
> 
> On 15 Oct, 2010,at 12:32 PM, Frank LoVecchio <frank@isidorey.com> wrote:
> 
>> 10:10:21,787 ERROR ~ Error getting Sensor 
>> org.apache.thrift.TApplicationException: Internal error processing get_slice
>> 	at org.apache.thrift.TApplicationException.read(TApplicationException.java:108)
>> 	at org.apache.cassandra.thrift.Cassandra$Client.recv_get_slice(Cassandra.java:544)
>> 	at org.apache.cassandra.thrift.Cassandra$Client.get_slice(Cassandra.java:524)
>> 	at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:538)
>> 	at org.scale7.cassandra.pelops.Selector$6.execute(Selector.java:535)
>> 	at org.scale7.cassandra.pelops.Operand.tryOperation(Operand.java:45)
>> 	at org.scale7.cassandra.pelops.Selector.getSuperColumnsFromRow(Selector.java:545)
>> 	at org.scale7.cassandra.pelops.Selector.getSuperColumnsFromRow(Selector.java:522)
>> 
>> Not sure if this is a pelops thing or thrift.
>> 
>> I spun up a new cluster of 3 nodes a couple of nights ago with the nightly build
0.7 beta 2's.  When I include all 3 nodes in the Pelops Pool, and run this:
>> 
>> List<SuperColumn> cols = selector.getSuperColumnsFromRow(
>>                                getColFamilyName(), key,
>>                                Selector.newColumnsPredicateAll(true, 1000),
>>                                ConsistencyLevel.ONE);
>> 
>>  I get the error above.  When I create a new Pool with only 1 node, I get different
data back then if I create a new Pool with another single node, but I don't get the error.
 Why is this happening?  Here is my cassandra.yaml file, which I haven't modified on the fly:
>> 
>> # Configuration wiki: http://wiki.apache.org/cassandra/StorageConfiguration
>> authority: org.apache.cassandra.auth.AllowAllAuthority
>> authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
>> auto_bootstrap: true
>> binary_memtable_throughput_in_mb: 256
>> cluster_name: DevCluster
>> column_index_size_in_kb: 64
>> commitlog_directory: /cassandra/commitlog
>> saved_caches_directory: /cassandra/saved_caches
>> commitlog_rotation_threshold_in_mb: 128
>> commitlog_sync: periodic
>> commitlog_sync_period_in_ms: 10000
>> concurrent_reads: 8
>> concurrent_writes: 50
>> data_file_directories:
>> - /cassandra/data
>> disk_access_mode: auto
>> endpoint_snitch: org.apache.cassandra.locator.SimpleSnitch
>> dynamic_snitch: true
>> hinted_handoff_enabled: true
>> in_memory_compaction_limit_in_mb: 256
>> keyspaces:
>>     - name: Keyspace
>>       replica_placement_strategy: org.apache.cassandra.locator.SimpleStrategy
>>       replication_factor: 3
>>       column_families:
>> 
>>         - name: Sensor
>>           column_type: Super
>>           compare_with: TimeUUIDType
>>           gc_grace_seconds: 864000
>>           keys_cached: 200000.0
>>           preload_row_cache: false
>>           read_repair_chance: 1.0
>>           rows_cached: 0.0
>> 
>> listen_address: ec2-internal-ip1
>> memtable_flush_after_mins: 60
>> memtable_operations_in_millions: 0.3
>> memtable_throughput_in_mb: 64
>> partitioner: org.apache.cassandra.dht.RandomPartitioner
>> phi_convict_threshold: 8
>> rpc_port: 9160
>> rpc_timeout_in_ms: 10000
>> seeds:
>> - ec2-internal-ip1
>> - ec2-internal-ip2
>> - ec2-internal-ip3
>> sliced_buffer_size_in_kb: 64
>> snapshot_before_compaction: false
>> storage_port: 7000
>> thrift_framed_transport_size_in_mb: 15
>> thrift_max_message_length_in_mb: 16
>> initial_token:
>> 
>> Frank LoVecchio
>> Software Engineer
>> Isidorey LLC
>> 
>> franklovecchio.com
>> rodsandricers.com
> 


Mime
View raw message