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

A race between compaction thread and the memcached thread that changes the vbucket state could fire an assertion crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.1.4, 4.1.0, 4.5.0
    • 3.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0, 3.1.1, 3.1.2, 3.1.3
    • couchbase-bucket
    • Security Level: Public
    • Untriaged
    • Unknown
    • KV: Sep 14 - Oct 2, KV: Oct 4 - Oct 24

    Description

      If while compaction is running on a particular vbucket, the vbucket state changes from active to replica, and the compaction continues to expire items after the state change, a crash can occur because of an assertion getting fired, when the snapshot marker is received from the new producer based on what has been requested.

      The steps would be:

      • state of vbucket x changes from active to replica.
      • stream request sent from consumer at x to new producer
      • Before the first step started, compaction was in progress (The run time of the compaction task would depend on the size of the file)
      • If at this point compaction were still running, and after the stream request was sent out - it did manage to expire a good number of items (essentially [expired_item_count + high_seqno] should be greater than the about-to-come-in snapshot end from the producer), then it would very likely fire the assertion while setting the snapshot range that snapshot_end is not greater than or equal to current_high_seqno.

      Attachments

        Issue Links

          For Gerrit Dashboard: MB-16357
          # Subject Branch Project Status CR V

          Activity

            People

              ericcooper Eric Cooper (Inactive)
              abhinav Abhi Dangeti
              Votes:
              1 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty