Produced an interesting case where the control connection cannot reestablish a Host that is the same host used for the control connection. The reason why it cannot be established is because ControlConnection#fetchNodeInfo makes the following query if the passed in Host is the same host used for the control connection:
The problem is that ControlConnection#refreshNodeInfo null checks the 'rpc_address' column of the returned row to determine if the node is an availble peer. The system.local table does not return the RPC address so this throws an IllegalArgumentException (added some extra comments in to demonstrate rpc_address is missing and that the control connection used the given host):
I reproduced this by running a single node cassandra cluster running on a local interface. I executed a stress scenario and then used tcpkill to reset connections on port 9042 and then terminated tcpkill shortly after to allow connections to reestablish:
driver 2.0.8
single node local cassandra-2.0.11
This is a known issue, with a fix planned for 2.0.9.
Woops, my mistake, good to see this is already addressed, thanks for closing