Running Windows 7 x64 Couchbase 2.0.0
I have a cluster of 2 servers successfully configured to use hostnames. They both show as “up” in the console.
Host 1: host-a.domain.com
Host 2: host-a.domain.com
I have them configured in their respective config sections to use hostnames as well:
Then, when I actually call an operation on the CouchbaseClient the operation returns false, unsuccessful.
More intriguingly, if I watch the “ops per second” for the bucket I’m targeting it appears to complete the operation! The result is just never delivered by the .NET client.
Everything works perfectly when Couchbase Server is bound to IP instead of hostname (client configs use hostnames in this case as well).
Upgrading to 2.0.1 (which wipes out the hostname binding btw), did not fix the issue.
I’ll note too that I ruled out any IPv4 mixing with IPv6 issues by disabling the IPv6 stack on both the servers and client machines. Observing TCP traffic and DNS lookups between nodes/clients using Wireshark on both the servers and the client confirmed that all communication was being done over IPv4.
Unfortunately that doesn’t give me much confidence pushing this out to a production environment. Looks like IP binding is the only reliable solution until someone at Couchbase can at least comment on this. That itself wouldn’t be a huge deal if an IP address change didn’t result in complete node data loss and the need to completely reconfigure the the service.