I have three active nodes in my cluster and all three nodes are supplied as an array to new Couchbase.
If one of those nodes is removed from the cluster completely the client will intermittently fail to establish a connection to the cluster despite there being two remaining nodes available and healthy. It appears that the upon failure an exception is being thrown without couchbase attempting to connect to the other nodes.
This can be reproduced by providing a made up IP in a list of cluster node IP's.
There are two errors when I attempt this locally. The main error is an exception:-
'CouchbaseLibcouchbaseException' with message 'Failed to connect libcouchbase to the server: Protocol error (Failed to bootstrap in time)'
However it is always preceded by:-
[warn] event_base_loop: reentrant invocation. Only one event_base_loop can run on each event_base at once.