Bucket.set() with "observe" option always results in Couchbase::Error::Timeout: the observe request was timed out

Trying to observe when my data is replicated and/or persisted, I get the following:

2.2.1 :147 > cb = Couchbase.connect(:bucket => ‘sshhh’, :node_list => [‘mynode’], :password => ‘sshhh’)
=> #<Couchbase::bucket:0x007fa382a4c310 “http://10.10.10.10:8091/pools/default/buckets/sshhh/” transcoder=Couchbase::Transcoder::Document, default_flags=0x0, quiet=false, connected=true, timeout=2500000, bootstrap_transport=:http>
2.2.1 :148 > cb.set(‘bryan’, 32, observe: {replicated: 1})
Couchbase::Error::Timeout: the observe request was timed out
from /Users/bryan/.rvm/gems/ruby-2.2.1/gems/couchbase-1.3.13/lib/couchbase/bucket.rb:426:in block in do_observe_and_wait' from /Users/bryan/.rvm/gems/ruby-2.2.1/gems/couchbase-1.3.13/lib/couchbase/bucket.rb:452:in call’
from /Users/bryan/.rvm/gems/ruby-2.2.1/gems/couchbase-1.3.13/lib/couchbase/bucket.rb:452:in do_observe_and_wait' from /Users/bryan/.rvm/gems/ruby-2.2.1/gems/couchbase-1.3.13/lib/couchbase/bucket.rb:334:in observe_and_wait’
from (irb):148:in set' from (irb):148 from /Users/bryan/.rvm/rubies/ruby-2.2.1/bin/irb:11:in

If I omit the “observe: { replicated: 1}” parameter when calling Bucket.set(), the key is successfully set.
I’ve confirmed there are no networking/firewall issues between my client and all nodes in the cluster.

Anybody else have troubles with this?

Bryan

Maybe related to this? Client-Side timeout exceeded for operation. Inspect network conditions or increase the timeout

Your cluster needs at least one configured online replica in order for this operation (observe) to work. How many cluster nodes are you using, and how many buckets do you have configured?

So, I have a three node cluster…“mynode” is one of them. The web UI reports the cluster is healthy (green circle), and the one bucket I have, ‘sshhh’, has replica set to 2.

What version of the C client do you have? If it’s 2.4.9 or 2.5.0, can you try with 2.4.8 and see if the problem still persists? I’ve gotten another user commenting on an issue with the newer durability checking code. While I don’t think there’s something wrong with the client, I’d like to verify.

Installed via homebrew, libcouchbase version is 2.4.8