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

FollyExecutorPool: Potential use-after-free race after multiple schedule/cancel calls

    XMLWordPrintable

Details

    • Triaged
    • 1
    • Unknown
    • KV-Engine-Sept-21, KV 2021-Oct-21, KV 2021-Nov

    Description

      As seen during CV tests for an unrelated patch (http://review.couchbase.org/c/kv_engine/+/157581) on aarch64-linux:

      Note: Google Test filter = EphemeralOrPersistent/SetParamTest.*
      [==========] Running 8 tests from 1 test suite.
      [----------] Global test environment set-up.
      [----------] 8 tests from EphemeralOrPersistent/SetParamTest
      [ RUN      ] EphemeralOrPersistent/SetParamTest.requirements_bucket_type/persistent
      [       OK ] EphemeralOrPersistent/SetParamTest.requirements_bucket_type/persistent (12 ms)
      [ RUN      ] EphemeralOrPersistent/SetParamTest.requirements_bucket_type/ephemeral
      terminate called after throwing an instance of 'std::logic_error'
        what():  FollyExecutorPool::removeTaskAfterRun(): Failed to locate an owner for task id:34
      

      Note this test mostly passes (see http://cv.jenkins.couchbase.com/job/kv_engine.aarch64-linux/job/master/187/testReport/junit/(root)/projectroot/ep_engine_ep_unit_tests_EphemeralOrPersistent_SetParamTest/history/) - and it's not clear if this is something specific to AArch64, or perhaps just shows up more often then. Certainly the concurrency logic in FollyExectorPool is somewhat delicate...

      Attachments

        Issue Links

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

          Activity

            People

              drigby Dave Rigby (Inactive)
              drigby Dave Rigby (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty