Leverage Endpoint or BroadcastAddress as opposed to BroadRpcAddress to avoid confusion in the logging
Spark Cassandra Connector (SCC) 2.11_2.5.1 which includes DataStax Java Driver 4.7.2 when leveraged from GCP's Dataproc cluster gives the following warning when executed against a DSE 6.8.3 cluster,
Trying to bump datastax-java-driver.advanced.connection.init-query-timeout property to 60 seconds also did not eliminate this warning message even though this gets the job done without any errors. spark.cassandra.connect.host only contains the private IPs as these jobs are getting executed from the Dataproc clusters which are inside the same VPC as the DSE nodes and hence don't need to make use of the public IPs at all.
Configuration on the cassandra.yaml is as follows,
listen_interface is commented out (default)
broadcast_address is commented out (default)
native_transport_interface is commented out (default)
This https://github.com/datastax/java-driver/blob/4.7.2/core/src/main/java/com/datastax/oss/driver/internal/core/pool/ChannelPool.java#L337 come up from the SCC. So the headache this was causing was that the SCC was throwing a warning about a problem opening a channel, and, everything is working, but the warning was coming from the public IP address, which in this case is set as the broadcast_native_transport_address. It was not making sense why the setting for native_transport_address was still showing the value of native_transport_broadcast_address.
We determined where the address fields for the driver get loaded from. This ticket is to have the logger print the Endpoint or BroadcastAddress here instead of BroadcastRpcAddress to avoid confusion between the public and private addresses, for ring operators/admins?
Also, what is not so clear is that even after the successful connection to the cluster, why would we end up getting this channel opening error/warning.