Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-51424

KVBucket::getValue can lead to incorrectly incrementing "failure_get" a failover trigger stat

    XMLWordPrintable

Details

    • Untriaged
    • 1
    • Unknown

    Description

      From linked CBSE we see this warning many times.

      WARNING (bucket) KVBucket::getValue failed get for item vb:843, it.seqno:-4, status:1
      

      This code is driven by the expiry pager, it is trying to load the value of a now expired item which is tagged as "xattr":

      void KVBucket::deleteExpiredItem(Item& it,
                                       time_t startTime,
                                       ExpireBy source) {
          VBucketPtr vb = getVBucket(it.getVBucketId());
       
          if (vb) {
              // MB-25931: Empty XATTR items need their value before we can call
              // pre_expiry. These occur because the value has been evicted.
              if (mcbp::datatype::is_xattr(it.getDataType()) && it.getNBytes() == 0) {
                  getValue(it);
              }
      

      However "seqno:-4" indicates this is really a state_non_existent_key StoredValue, which occurs due to bgfetch. Each time getValue fails to just find the document, because it genuinely doesn't exist we still increment failure_get

      This is a side-effect of the bug described in MB-47952 - having deleted, non-resident documents in memory which (incorrectly) have the XATTR datatype set. As such we attempt to read a document which no longer exists, and hence the above error is seen (and failure stat incremented).

      Attachments

        Issue Links

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

          Activity

            People

              ashwin.govindarajulu Ashwin Govindarajulu
              jwalker Jim Walker
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty