Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-2179

LookupIn does not correctly parse config returned by NMVB

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.7.5, 2.7.13
    • 2.7.15
    • library
    • None
    • Windows server
    • 1

    Description

      The sub document API multilookup operation does not correctly handle a Not My VBucket (NMVB) response from the server.  The updated configuration from the server is not parsed correctly and the client's vbucket map is not updated.

      MultiLookup<T>.GetValue attempts to interpret the beginning portion of the configuration JSON string as a body length (SDK version 2.7.13, MultiLookup.cs line 97)

      This results in spikes in memory usage as an extremely large and unneed byte array is allocated, and an ArgumentException when attempting to read past the end of the response buffer.  The execption causes the response status to be changed from VBucketBelongsToAnotherServer to ClientFailure, which causes the configuration update logic to never be invoked.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          This issue was also reported / described in couchbase support ticket #31073.  We've reproduced this with 2.7.5 and 2.7.13, though it is likely other versions are affected as well.  

          tfarris07 Timothy Farris added a comment - This issue was also reported / described in couchbase support ticket #31073.  We've reproduced this with 2.7.5 and 2.7.13, though it is likely other versions are affected as well.  

          I have a fix for this that I am looking to contribute.

          tfarris07 Timothy Farris added a comment - I have a fix for this that I am looking to contribute.

          Hi Timothy Farris-- thanks for the bug report and sorry you've hit this issue.

          Most typically we run contributions through Gerrit at review.couchbase.org as mentioned in the README. To make this one quick for you, maybe what we should do is just get a pull request, and all you'll need to do is create an account on Gerrit and accept the CLA:
          http://review.couchbase.org/#/settings/agreements

          If you want to push direct to gerrit, that works too. Just make sure your email in the commit is registered in your gerrit settings:
          http://review.couchbase.org/#/settings/contact

          ingenthr Matt Ingenthron added a comment - Hi Timothy Farris -- thanks for the bug report and sorry you've hit this issue. Most typically we run contributions through Gerrit at review.couchbase.org as mentioned in the README . To make this one quick for you, maybe what we should do is just get a pull request, and all you'll need to do is create an account on Gerrit and accept the CLA: http://review.couchbase.org/#/settings/agreements If you want to push direct to gerrit, that works too. Just make sure your email in the commit is registered in your gerrit settings: http://review.couchbase.org/#/settings/contact
          jmorris Jeff Morris added a comment -

          Hi Timothy Farris -

          I updated the ticket title to identify the cause and not the effect; let me know if you need any help getting the PR to Gerrit. Once in Gerrit, it will be reviewed and merged once it is approved.

          Thanks,

          Jeff

          jmorris Jeff Morris added a comment - Hi Timothy Farris - I updated the ticket title to identify the cause and not the effect; let me know if you need any help getting the PR to Gerrit. Once in Gerrit, it will be reviewed and merged once it is approved. Thanks, Jeff

          Hi Jeff Morris

          I think I've gotten the change into Gerrit correctly: http://review.couchbase.com/c/117821/

          Could you tell me how long these reviews typically take?

          tfarris07 Timothy Farris added a comment - Hi Jeff Morris I think I've gotten the change into Gerrit correctly:  http://review.couchbase.com/c/117821/ Could you tell me how long these reviews typically take?

          Thanks Timothy Farris: we'll need to target the right branch, but we can take it from here. Given that you have an open case under your Enterprise Subscription related to this, it's a priority. Typically something like this should happen within a day or so.

          Jeff Morris and I are also working with the support and QE folks to give more specific timeframes as we work it out with those teams. That should come back to you through support.

          ingenthr Matt Ingenthron added a comment - Thanks Timothy Farris : we'll need to target the right branch, but we can take it from here. Given that you have an open case under your Enterprise Subscription related to this, it's a priority. Typically something like this should happen within a day or so. Jeff Morris and I are also working with the support and QE folks to give more specific timeframes as we work it out with those teams. That should come back to you through support.
          jmorris Jeff Morris added a comment -

          Patch is on Gerrit

          jmorris Jeff Morris added a comment - Patch is on Gerrit

          This is missing a fixversion. Should be in the next maintenance, right?

          ingenthr Matt Ingenthron added a comment - This is missing a fixversion. Should be in the next maintenance, right?

          People

            jmorris Jeff Morris
            tfarris07 Timothy Farris
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty