Looks like we've regressed on the issue described in:
In that we're no longer able to connect from newer cqlsh versions
(e.g trunk) to older versions of Cassandra with a lower version of the protocol (e.g 2.1 with protocol version 3)
The problem seems to be that we're relying on the ability for the client to automatically downgrade protocol version implemented in Cassandra here:
and utilised in the python client here:
The problem however comes when we implemented:
"Don't downgrade protocol version if explicitly set"
(included when we bumped from 3.5.0 to 3.7.0 of the python driver as part of fixing: https://issues.apache.org/jira/browse/CASSANDRA-11534)
Since we do explicitly specify the protocol version in the bin/cqlsh.py.
I've got a patch which just adds an option to explicitly specify the protocol version (for those who want to do that) and then otherwise defaults to not setting the protocol version, i.e using the protocol version from the client which we ship, which should by default be the same protocol as the server.
Then it should downgrade gracefully as was intended.
Let me know if that seems reasonable.