[
https://issues.apache.org/jira/browse/CASSANDRA-1331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis resolved CASSANDRA-1331.
---------------------------------------
Resolution: Cannot Reproduce
> Any request after a TApplicationException hangs
> -----------------------------------------------
>
> Key: CASSANDRA-1331
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1331
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Reporter: Apache
> Priority: Minor
>
> Observed that the design of request validation can return without consuming
> the complete request. The remnant is then read by the next request and
> produces a large read size.
> readMessageBegin size: 134218752
> Sample test case in python:
> from cassandra.ttypes import *
> from cassandra import Cassandra
> from thrift import Thrift
> from thrift.transport import TTransport
> from thrift.transport import TSocket
> from thrift.protocol.TBinaryProtocol import TBinaryProtocolAccelerated
> socket = TSocket.TSocket("127.0.0.1", 9160)
> transport = TTransport.TBufferedTransport(socket)
> protocol = TBinaryProtocolAccelerated(transport)
> client = Cassandra.Client(protocol)
> transport.open()
> client.transport = transport
> # don't specify a column_family to force a TApplicationException
> parent = ColumnParent()
> try:
> client.get_count("ignore_keyspace", "ignore_key", parent, 1)
> print "ERROR: we didn't see the problem"
> except TApplicationException as e:
> message = "Required field 'column_family' was not present!"
> if e.message.startswith(message):
> print "OK, we got the error we were looking for."
> print "The server input buffer was only partially read,"
> print " up to the validation error, so our next request"
> print " will start reading the stale data causing a hang."
> print "hanging..."
> client.get_count("ignore_keyspace", "ignore_key", parent, 1)
> client.transport.close()
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.