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

DCP needs correct ref-counted pointers

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.1.3, 4.1.1
    • 3.1.2, 4.0.0, 4.0.1, 4.1.0, 4.5.0, 5.0.0
    • storage-engine
    • Security Level: Public
    • Untriaged
    • No

    Description

      1. The stream_t is used by DcpBackfillTask and the DcpProducer, so at least 2 threads are accessing the value. stream_t is defined as a SingleThreadedRCPtr, not the concurrent-safe RCPtr
      2. ActiveStream, PassiveStream and NotifierStream use base pointers to DcpProducer/DcpConsumer yet can schedule background tasks which may access those pointers past the objects deletion.
      1. Change stream_t to RCPtr
      2. Add RCPtr's to the Stream classes so that the object deletion occurs once no one references the producer.

      Attachments

        Issue Links

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

          Activity

            People

              jwalker Jim Walker
              jwalker Jim Walker
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty