[ 
https://issues.apache.org/jira/browse/CASSANDRA-6270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeremy Hanna updated CASSANDRA-6270:
------------------------------------
    Labels: LWT  (was: )

> SERIAL consistency in errors to v1 protocol driver
> --------------------------------------------------
>
>                 Key: CASSANDRA-6270
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6270
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Cassandra 2.0
>            Reporter: Theo Hultberg
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>              Labels: LWT
>             Fix For: 2.0.3
>
>         Attachments: 6270.txt
>
>
> I'm the author of the Ruby driver for CQL, and I got a bug report about 
> strange errors when running on C* 2.0 and using lightweight transaction 
> queries. The bug report can be found here: 
> https://github.com/iconara/cql-rb/issues/53
> The client sent {{UPDATE table SET val = 42 WHERE row_id = 5 IF val = 41}} 
> and when C* couldn't fulfill SERIAL consistency it sent an error back saying 
> "Operation timed out - received only -1 responses".
> So far so good, but it also set the {{consistency}} field in the error 
> response to 8, corresponding to {{SERIAL}} in v2 of the binary protocol, even 
> if the communication with the client was over v1 of the protocol. Since my 
> driver doesn't yet support v2 it doesn't think that 8 is a valid consistency, 
> and fails to parse the frame.
> Is this the intended behaviour of C*, or an oversight in how that error is 
> formulated? I could easily add {{SERIAL}} and accept it even if the 
> communication is over v1 of the protocol, but the bigger issue is how C* 
> handles drivers that do not speak the latest version of the protocol. People 
> should be able to use a driver that worked correctly with C* X with C* X+1, 
> right?
> Do drivers have to be accepting in what they receive from C* because they 
> might get consistencies, data types, etc. that are from future versions of 
> the protocol, or does C* guarantee that frames will conform to the protocol 
> that the driver says it understands?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to