We run our Cassandra cluster in a Docker (Stack) environment. Whenever we restart a node, the node keeps its host id but gets a new IP address.
We are using the new java driver 4.1.0 and registered a NodeStateListener.
When we restart a Cassandra node, we receive an onDown event, but never an onUp event. We implemented a custom LoadBalancingPolicy but this behavior also holds true for the DefaultLoadBalancingPolicy.
We have seen that AddNodeRefresh class checks, if a node with the given host id exists. It does not fire any event when the host id of an old node and a new node is the same but is not taking into account that the IP address could have changed. At the same time the IP address of the old node is not updated so that all reconnecting attempts are directed to the old, invalid IP address.