Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4353

no error propagated to client when updating a column family with an invalid column def

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.1.2
    • Legacy/CQL
    • None
    • Low

    Description

      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:

      ======================================================================
      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
      
      ----------------------------------------------------------------------
      
      

      The logs have the following stack trace:

      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)
      

      Attachments

        1. 4353.patch
          1 kB
          Sam Overton

        Activity

          People

            soverton Sam Overton
            soverton Sam Overton
            Sam Overton
            Pavel Yaskevich
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: