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

Jeff Widman updated CASSANDRA-16508:
------------------------------------
    Description: 
I just ran `cqlsh` from `trunk` commit 2aa22ba99dcc1dacb07b7af31b2664e7db839063 
against a Cassandra 3.11.10 docker image.

I expected that the newer cqlsh would down-negotiate from the v5 protocol to 
the older v4 protocol.

Instead, I was surprised to get a server error about a beta protocol being used 
without `BETA_FLAG` being set. I unfortunately had to reboot my computer, so I 
lost the traceback but I can easily reproduce if needed.

I think what's happening is that this commit promoted v5 out of beta:
https://github.com/apache/cassandra/commit/c9d6c725dd0b4aa5693eb1c6d2221c28e9e99c6e#diff-9e4fe0cfd28004625a8006be8a0bdeab8cbdfb039449fb9501b15e8952577aaaL479

And then when it tries to contact the older cassandra version, it complains 
that the v5 protocol is now being used without this beta flag being set.

However, I was expecting that cqlsh would catch the error and down-negotiate to 
v4. Instead, it simply returns the error. Among other things, this prevents 
cqlsh from being used against mixed-version clusters during a cluster upgrade.

Also given that this was the first cqlsh to support python 3, it means that 
anyone trying to use python 3 for cqlsh against cassandra 3.x will hit a weird 
error that they'll have to google for to find the random answer on 
stackoverflow that points them toward the `--cqlversion` flag. There is no 
alternative if you want to use python 3.

  was:
I just ran `cqlsh` from `trunk` commit 2aa22ba99dcc1dacb07b7af31b2664e7db839063 
against a Cassandra 3.11.10 docker image.

I expected that the newer cqlsh would down-negotiate from the v5 protocol to 
the older v4 protocol.

Instead, I was surprised to get a server error about a beta protocol being used 
without `BETA_FLAG` being set. I unfortunately had to reboot my computer, so I 
lost the traceback but I can easily reproduce if needed.

I think what's happening is that this commit promoted v5 out of beta:
https://github.com/apache/cassandra/commit/c9d6c725dd0b4aa5693eb1c6d2221c28e9e99c6e#diff-9e4fe0cfd28004625a8006be8a0bdeab8cbdfb039449fb9501b15e8952577aaaL479

And then when it tries to contact the older cassandra version, it complains 
that the v5 protocol is now being used without this beta flag being set.

However, I was expecting that cqlsh would catch the error and down-negotiate to 
v4. Instead, it simply returns the error. Among other things, this prevents 
cqlsh from being used against mixed-version clusters during a cluster upgrade.


> Running cqlsh against cassandra 3 throws error about beta flag not set
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-16508
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16508
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jeff Widman
>            Priority: Normal
>
> I just ran `cqlsh` from `trunk` commit 
> 2aa22ba99dcc1dacb07b7af31b2664e7db839063 against a Cassandra 3.11.10 docker 
> image.
> I expected that the newer cqlsh would down-negotiate from the v5 protocol to 
> the older v4 protocol.
> Instead, I was surprised to get a server error about a beta protocol being 
> used without `BETA_FLAG` being set. I unfortunately had to reboot my 
> computer, so I lost the traceback but I can easily reproduce if needed.
> I think what's happening is that this commit promoted v5 out of beta:
> https://github.com/apache/cassandra/commit/c9d6c725dd0b4aa5693eb1c6d2221c28e9e99c6e#diff-9e4fe0cfd28004625a8006be8a0bdeab8cbdfb039449fb9501b15e8952577aaaL479
> And then when it tries to contact the older cassandra version, it complains 
> that the v5 protocol is now being used without this beta flag being set.
> However, I was expecting that cqlsh would catch the error and down-negotiate 
> to v4. Instead, it simply returns the error. Among other things, this 
> prevents cqlsh from being used against mixed-version clusters during a 
> cluster upgrade.
> Also given that this was the first cqlsh to support python 3, it means that 
> anyone trying to use python 3 for cqlsh against cassandra 3.x will hit a 
> weird error that they'll have to google for to find the random answer on 
> stackoverflow that points them toward the `--cqlversion` flag. There is no 
> alternative if you want to use python 3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to