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

Data race in TapConnMap::shutdownAllConnections()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 4.5.0
    • .master
    • couchbase-bucket
    • None
    • Untriaged
    • Unknown
    • KV: Mar 30 - April 12

    Description

      As detected by ThreadSanitizer during a commit validation run:

      SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_list.h:395 TapConnMap::shutdownAllConnections()
      

      Log file: http://cv.jenkins.couchbase.com/job/ep-engine-threadsanitizer-watson/352/consoleFull

      Patch is based off ep-engine SHA 3d47080

      Details:

      WARNING: ThreadSanitizer: data race (pid=102639)
        Write of size 8 at 0x7d8400028088 by main thread (mutexes: write M213948):
          #0 TapConnMap::shutdownAllConnections() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_list.h:395 (ep.so+0x000000044425)
          #1 EvpDestroy(engine_interface*, bool) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep_engine.cc:2171 (ep.so+0x0000000b7dec)
          #2 mock_destroy(engine_interface*, bool) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:101 (engine_testapp+0x0000004cd7f7)
          #3 destroy_bucket(engine_interface*, engine_interface_v1*, bool) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:998 (engine_testapp+0x0000004cd679)
          #4 destroy_buckets(std::vector<BucketHolder, std::allocator<BucketHolder> >&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite_common.cc:331 (ep_testsuite.so+0x00000004e4e5)
          #5 test_multi_bucket_set_get(test*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite.cc:5668 (ep_testsuite.so+0x000000041319)
          #6 execute_test(test, char const*, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:1149 (engine_testapp+0x0000004cc635)
          #7 __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:226 (libc.so.6+0x00000002176c)
       
        Previous read of size 8 at 0x7d8400028088 by thread T18:
          #0 ConnManager::run() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_list.h:882 (ep.so+0x00000004d912)
          #1 ExecutorThread::run() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorthread.cc:115 (ep.so+0x0000000f9fe6)
          #2 launch_executor_thread(void*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorthread.cc:33 (ep.so+0x0000000f9b95)
          #3 platform_thread_wrap(void*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/platform/src/cb_pthreads.cc:54 (libplatform.so.0.1.0+0x00000000568b)
       
        Location is heap block of size 4296 at 0x7d8400028000 allocated by main thread:
          #0 operator new(unsigned long) <null> (engine_testapp+0x00000046442d)
          #1 EventuallyPersistentEngine::initialize(char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep_engine.cc:2124 (ep.so+0x0000000ba32c)
          #2 EvpInitialize(engine_interface*, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep_engine.cc:143 (ep.so+0x0000000b7d38)
          #3 init_engine_instance <null> (libmcd_util.so.1.0.0+0x0000000057ab)
          #4 create_bucket(bool, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:983 (engine_testapp+0x0000004cd5e7)
          #5 create_buckets(char const*, int, std::vector<BucketHolder, std::allocator<BucketHolder> >&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite_common.cc:319 (ep_testsuite.so+0x00000004d6f4)
          #6 test_multi_bucket_set_get(test*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite.cc:5636 (ep_testsuite.so+0x000000040291)
          #7 execute_test(test, char const*, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:1149 (engine_testapp+0x0000004cc635)
          #8 __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:226 (libc.so.6+0x00000002176c)
       
        Mutex M213948 (0x7d8400028030) created at:
          #0 pthread_mutex_lock <null> (engine_testapp+0x000000486720)
          #1 std::mutex::lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9/bits/gthr-default.h:748 (ep.so+0x00000004324b)
          #2 Warmup::initialize() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/warmup.cc:442 (ep.so+0x000000153150)
          #3 WarmupInitialize::run() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/warmup.h:227 (ep.so+0x000000160fa5)
          #4 ExecutorThread::run() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorthread.cc:115 (ep.so+0x0000000f9fe6)
          #5 launch_executor_thread(void*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorthread.cc:33 (ep.so+0x0000000f9b95)
          #6 platform_thread_wrap(void*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/platform/src/cb_pthreads.cc:54 (libplatform.so.0.1.0+0x00000000568b)
       
        Thread T18 'mc:nonio_17' (tid=102659, running) created by main thread at:
          #0 pthread_create <null> (engine_testapp+0x0000004678d1)
          #1 cb_create_named_thread /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/platform/src/cb_pthreads.cc:104 (libplatform.so.0.1.0+0x0000000054e5)
          #2 ExecutorThread::start() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorthread.cc:46 (ep.so+0x0000000f9537)
          #3 ExecutorPool::_startWorkers() /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorpool.cc:536 (ep.so+0x0000000f366c)
          #4 ExecutorPool::_registerTaskable(Taskable&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorpool.cc:486 (ep.so+0x0000000f2509)
          #5 ExecutorPool::registerTaskable(Taskable&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/executorpool.cc:491 (ep.so+0x0000000f473e)
          #6 EventuallyPersistentStore::EventuallyPersistentStore(EventuallyPersistentEngine&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep.cc:301 (ep.so+0x00000008517a)
          #7 EventuallyPersistentEngine::initialize(char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep_engine.cc:2132 (ep.so+0x0000000ba3fe)
          #8 EvpInitialize(engine_interface*, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/src/ep_engine.cc:143 (ep.so+0x0000000b7d38)
          #9 init_engine_instance <null> (libmcd_util.so.1.0.0+0x0000000057ab)
          #10 create_bucket(bool, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:983 (engine_testapp+0x0000004cd5e7)
          #11 create_buckets(char const*, int, std::vector<BucketHolder, std::allocator<BucketHolder> >&) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite_common.cc:319 (ep_testsuite.so+0x00000004d6f4)
          #12 test_multi_bucket_set_get(test*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/ep-engine/tests/ep_testsuite.cc:5636 (ep_testsuite.so+0x000000040291)
          #13 execute_test(test, char const*, char const*) /home/couchbase/jenkins/workspace/ep-engine-threadsanitizer-watson/memcached/programs/engine_testapp/engine_testapp.cc:1149 (engine_testapp+0x0000004cc635)
          #14 __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:226 (libc.so.6+0x00000002176c)
      

      Attachments

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

        Activity

          People

            owend Daniel Owen
            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