Uploaded image for project: 'Couchbase C client library libcouchbase'
  1. Couchbase C client library libcouchbase
  2. CCBC-1345

lcb_open only sending to one of two nodes

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.0.7
    • None
    • None
    • None
    • 1

    Description

      Server version: 7.0.0-3739. 2 node cluster. I can repro against other versions too, this does not happen against a single node cluster.

      I'm not certain that we aren't doing something wrong rust side here but this seems like something that would be out of our control.

      I'm using cbshell and as soon as the shell starts I send a get request (so before lcb has had a chance to get fully setup). What I think that I'm seeing happen here is that we create a new lcb instance against node A. Lcb gets a cluster config but before it connects to node B we send an open bucket. Node B connection bootstraps and I see 2 select bucket requests against that node, I do not know if one has been sent as a part of bootstrap or if it's 2 requests after bootstrap. I see the open bucket callback get called and then we send a get request (which is converted into a get cid) which gets routed to node A and returns a Not connected to bucket error.

      I have attached logs and pcap. In the logs the line "DEBUG couchbase::io::lcb::instance > Starting bucket bind for default" is where we start the open bucket from the rust side. We use a lcb_wait after open and the line once that has completed is " DEBUG couchbase::io::lcb::instance > Finished bucket bind for default".

       

      Attachments

        1. lcb_open.log
          12 kB
        2. lcb_open.pcapng
          12.20 MB

        Activity

          People

            avsej Sergey Avseyev
            charles.dixon Charles Dixon
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty