[ 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