transport/server: Fix schema change event encoding

We also need to encode the event type in the response message. Fixes the
following dtest breakage:

  cassandra.connection: ERROR: Error decoding response from Cassandra. opcode: 000c; message contents: '\x83\x00\xff\xff\x0c\x00\x00\x00\x17\x00\x07CREATED\x00\x08KEYSPACE\x00\x02ks'
  Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/cassandra/connection.py", line 431, in process_msg
      flags, opcode, body, self.decompressor)
    File "/usr/lib64/python2.7/site-packages/cassandra/protocol.py", line 123, in decode_response
      msg = msg_class.recv_body(body, protocol_version, user_type_map)
    File "/usr/lib64/python2.7/site-packages/cassandra/protocol.py", line 803, in recv_body
      raise NotSupportedError('Unknown event type %r' % event_type)
  NotSupportedError: Unknown event type u'CREATED'

Reported-by: Shlomi Livne <shlomi@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This commit is contained in:
Pekka Enberg
2015-08-05 15:14:44 +03:00
committed by Avi Kivity
parent 522f23b830
commit e5ca713e72

View File

@@ -921,6 +921,7 @@ future<> cql_server::connection::write_result(int16_t stream, shared_ptr<transpo
future<> cql_server::connection::write_schema_change_event(const transport::event::schema_change& event)
{
auto response = make_shared<cql_server::response>(-1, cql_binary_opcode::EVENT);
response->write_string("SCHEMA_CHANGE");
response->write_string(to_string(event.change));
response->write_string(to_string(event.target));
response->write_string(event.keyspace);