Sam Overton created CASSANDRA-4353:
--------------------------------------
Summary: no error propagated to client when updating a column
family with an invalid column def
Key: CASSANDRA-4353
URL: https://issues.apache.org/jira/browse/CASSANDRA-4353
Project: Cassandra
Issue Type: Bug
Components: API
Affects Versions: 1.1.1
Reporter: Sam Overton
Priority: Minor
CASSANDRA-3761 appears to have introduced a regression which is exposed by
test_system_column_family_operations in test/system/test_thrift_server.py
The test fails with this stack trace:
{noformat}
======================================================================
ERROR:
system.test_thrift_server.TestMutations.test_system_column_family_operations
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/nose/case.py", line 183, in runTest
self.test(*self.arg)
File
"/opt/acunu/tests/cassandra-tests.hg/thrift/system/test_thrift_server.py", line
1469, in test_system_column_family_operations
_expect_exception(fail_invalid_field, InvalidRequestException)
File
"/opt/acunu/tests/cassandra-tests.hg/thrift/system/test_thrift_server.py", line
209, in _expect_exception
r = fn()
File
"/opt/acunu/tests/cassandra-tests.hg/thrift/system/test_thrift_server.py", line
1468, in fail_invalid_field
client.system_update_column_family(modified_cf)
File "/usr/lib/python2.6/site-packages/cassandra/Cassandra.py", line 1892, in
system_update_column_family
return self.recv_system_update_column_family()
File "/usr/lib/python2.6/site-packages/cassandra/Cassandra.py", line 1903, in
recv_system_update_column_family
(fname, mtype, rseqid) = self._iprot.readMessageBegin()
File "/usr/lib64/python2.6/site-packages/thrift/protocol/TBinaryProtocol.py",
line 126, in readMessageBegin
sz = self.readI32()
File "/usr/lib64/python2.6/site-packages/thrift/protocol/TBinaryProtocol.py",
line 203, in readI32
buff = self.trans.readAll(4)
File "/usr/lib64/python2.6/site-packages/thrift/transport/TTransport.py",
line 58, in readAll
chunk = self.read(sz-have)
File "/usr/lib64/python2.6/site-packages/thrift/transport/TTransport.py",
line 272, in read
self.readFrame()
File "/usr/lib64/python2.6/site-packages/thrift/transport/TTransport.py",
line 276, in readFrame
buff = self.__trans.readAll(4)
File "/usr/lib64/python2.6/site-packages/thrift/transport/TTransport.py",
line 58, in readAll
chunk = self.read(sz-have)
File "/usr/lib64/python2.6/site-packages/thrift/transport/TSocket.py", line
108, in read
raise TTransportException(type=TTransportException.END_OF_FILE,
message='TSocket read 0 bytes')
TTransportException: TSocket read 0 bytes
----------------------------------------------------------------------
{noformat}
The logs have the following stack trace:
{noformat}
ERROR [Thrift:1] 2012-06-18 18:17:27,865 CustomTThreadPoolServer.java (line
204) Error occurred during processing of message.
org.apache.cassandra.db.marshal.MarshalException: A long is exactly 8 bytes: 16
at org.apache.cassandra.db.marshal.LongType.getString(LongType.java:72)
at
org.apache.cassandra.cql3.ColumnIdentifier.<init>(ColumnIdentifier.java:47)
at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:115)
at
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1303)
at
org.apache.cassandra.config.CFMetaData.columnMetadata(CFMetaData.java:228)
at
org.apache.cassandra.config.CFMetaData.fromThrift(CFMetaData.java:648)
at
org.apache.cassandra.thrift.CassandraServer.system_update_column_family(CassandraServer.java:1061)
at
org.apache.cassandra.thrift.Cassandra$Processor$system_update_column_family.getResult(Cassandra.java:3520)
at
org.apache.cassandra.thrift.Cassandra$Processor$system_update_column_family.getResult(Cassandra.java:3508)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
at
org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:186)
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)
{noformat}
--
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