Cassandra / Pycassa: get_slice () / get_indexed_slice () doesn't work with TApplicationException: Unknown result

When rows of lines from Cassandra through Picassa sometimes make a difference TApplicationException: get_slice failed: unknown result]


I cannot reproduce this exception, and I cannot find any documentation for this issue. Right now I am running Cassandra as a separate node (for development) and Exception always occurs in a context where there are many concurrent requests happening. I would like to know if the reason for this is something like a performance issue or is related to something else (so I would like to know if it might disappear when more than one node is run in production?).

The Cassandra version is 1.0.7 and the log output is as follows:

[DEBUG 17:45:58,253 Thrift transport error occurred during processing of message.
    at org.apache.thrift.transport.TTransport.readAll(
    at org.apache.thrift.transport.TFramedTransport.readFrame(
    at org.apache.thrift.transport.TTransport.readAll(
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(
    at org.apache.cassandra.thrift.Cassandra$Processor.process(
    at org.apache.cassandra.thrift.CustomTThreadPoolServer$
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
    at java.util.concurrent.ThreadPoolExecutor$
DEBUG 17:45:58,315 logged out: #<User allow_all groups=[]>]



source to share

1 answer

If you are using multiprocessing, pycassa.pool is not multiprocessing safe .

I was getting "TApplicationException: get_slice failed: unknown result" under similar circumstances. I created multiple pycassa.pools, one pool per process, and the problem was resolved.

There is a dedicated page in the documentation to tell us about multiprocessing and pools, but it doesn't list what kind of error you'll get if you're multiprocessing with one pool. I think this is right!



All Articles