system.peers_v2 includes a “native_port” but has no notion of native_transport_port vs. native_transport_port_ssl. Given this limited information, there’s no clear way for the driver to know that different ports are being used for SSL vs. non-SSL or which of those two ports is identified by “native_port”.
The issue we ran into is that the java driver, since it has no notion of the transport port SSL, the driver was only using the contact points and was not load balancing.
The customer had both set:
They were attempting to connect to 9142, but that was failing. They could only use 9042, and so their applications load balancing was failing. We found that any node that was a contact point was connecting, but the other nodes were never acting as coordinators.
There are still issues in the driver, for which I have created JAVA-2967, which also refers to JAVA-2638, but the system.peers and system.peers_v2 tables should both contain native_transport_port and native_transport_port_ssl.