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

DCP_ADD_STREAM provides a way to inflate bucket memory with no recovery

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • 7.6.4
    • 7.6.0, 7.0.0-Beta1, 7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.0.4, 7.1.4, 7.0.5, 7.1.0, 7.1.1, 7.1.2, 7.2.0, 7.1.3, 7.2.1, 7.1.5, 7.2.4, 7.0.6, 7.1.7, 7.2.2, 7.1.6, 7.2.3, 7.2.5, 7.6.2, 7.2.6, 7.6.1, 7.6.4, 7.2.7, 7.6.5, 7.7
    • couchbase-bucket
    • None
    • Untriaged
    • 0
    • Unknown

    Description

      In an empty bucket (or at least no new mutations) DCP_ADD_STREAM can inflate memory with no recovery path. This can only happen if DCP_ADD_STREAM is allowed to execute repeatedly which happens if the DCP replication connection is disconnected, i.e. you cannot just issue DCP_ADD_STREAM to hit this issue.

      Each disconnect of the replication connection will trigger the recreation of replication, and the recreation of all DCP streams, which is done on the consumer end by invoking DCP_ADD_STREAM for each vbucket.

      On success DCP_ADD_STREAM will flush the new failover log to using the set-vbucket-state meta-data item.

      If we cycle indefinitley (disconnect/connect/addstreams) then that function is called many times, each time adding a new set-vb-state meta item to the open-checkpoint (each time increasing memory).

      If nothing else is going on in the system, there is no path to free this memory. The set-vb-state meta item cannot be expelled (when it could be) and nothing will remove the checkpoint because it is open, and won't be closed unless activity on the active vbucket occurs.

      Attachments

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

        Activity

          People

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

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There is 1 open Gerrit change

                PagerDuty