Olivier Michallat created CASSANDRA-8054:
--------------------------------------------

             Summary: EXECUTE request with skipMetadata=false gets no metadata 
in response
                 Key: CASSANDRA-8054
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8054
             Project: Cassandra
          Issue Type: Bug
            Reporter: Olivier Michallat


This has been reported independently with the 
[Java|https://datastax-oss.atlassian.net/browse/JAVA-482] and 
[C++|https://datastax-oss.atlassian.net/browse/CPP-174] drivers.

This happens under heavy load, where multiple client threads prepare and 
execute statements in parallel. One of them sends an EXECUTE request with 
skipMetadata=false, but the returned ROWS response has no metadata in it.

A patch of {{Message.Dispatcher.channelRead0}} confirmed that the flag was 
incorrectly set on the response:

{code}
                logger.debug("Received: {}, v={}", request, 
connection.getVersion());

                boolean skipMetadataOnRequest = false;
                if (request instanceof ExecuteMessage) {
                    ExecuteMessage execute = (ExecuteMessage)request;
                    skipMetadataOnRequest = execute.options.skipMetadata();
                }
                response = request.execute(qstate);

                if (request instanceof ExecuteMessage) {
                    Rows rows = (Rows)response;
                    boolean skipMetadataOnResponse = 
rows.result.metadata.flags.contains(Flag.NO_METADATA);
                    if (skipMetadataOnResponse != skipMetadataOnRequest) {
                        logger.warn("Inconsistent skipMetadata on streamId {}, 
was {} in request but {} in response",
                                    request.getStreamId(),
                                    skipMetadataOnRequest,
                                    skipMetadataOnResponse);
                    }
                }
{code}

We observed the warning with (false, true) during our tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to