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

TSan: data race on auditHandle

    XMLWordPrintable

Details

    • Untriaged
    • Unknown
    • KV-Engine MH 2nd Beta

    Description

      During KV-Engine post-commit the following TSan issue is (intermittently) seen:

      ThreadSanitizer: data race/usr/local/include/c++/7.3.0/bits/move.h:199std::enable_if >, std::is_move_constructible, std::is_move_assignable >::value, void>::type std::swap(cb::audit::Audit*&, cb::audit::Audit*&)
       
        Write of size 8 at 0x0000009b0130 by main thread:
          #0 std::enable_if >, std::is_move_constructible, std::is_move_assignable >::value, void>::type std::swap(cb::audit::Audit*&, cb::audit::Audit*&) /usr/local/include/c++/7.3.0/bits/move.h:199 (memcached+0x0000004f335a)
          #1 std::unique_ptr >::reset(cb::audit::Audit*) /usr/local/include/c++/7.3.0/bits/unique_ptr.h:374 (memcached+0x0000004f335a)
          #2 shutdown_audit() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/mcaudit.cc:348 (memcached+0x0000004f335a)
          #3 memcached_main /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/memcached.cc:2503 (memcached+0x000000435a46)
          #4 main /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/main.cc:33 (memcached+0x00000042145e)
       
        Previous read of size 8 at 0x0000009b0130 by thread T8 (mutexes: write M1049192993527234104):
          #0 std::__uniq_ptr_impl >::_M_ptr() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:147 (memcached+0x0000004f3433)
          #1 std::unique_ptr >::get() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:337 (memcached+0x0000004f3433)
          #2 std::unique_ptr >::operator->() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:331 (memcached+0x0000004f3433)
          #3 stats_audit(std::function)> const&, Cookie&) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/mcaudit.cc:361 (memcached+0x0000004f3433)
          #4 stat_audit_executor /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/protocol/mcbp/stats_context.cc:446 (memcached+0x000000528f72)
          #5 StatsCommandContext::doStats() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/protocol/mcbp/stats_context.cc:850 (memcached+0x00000052a0f6)
          #6 StatsCommandContext::step() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/protocol/mcbp/stats_context.cc:780 (memcached+0x00000052af87)
          #7 SteppableCommandContext::drive() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/protocol/mcbp/steppable_command_context.cc:37 (memcached+0x0000005313e4)
          #8 stat_executor /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/mcbp_executors.cc:199 (memcached+0x0000004fa95f)
          #9 std::_Function_handler::_M_invoke(std::_Any_data const&, Cookie&) /usr/local/include/c++/7.3.0/bits/std_function.h:316 (memcached+0x000000502fc2)
          #10 std::function::operator()(Cookie&) const /usr/local/include/c++/7.3.0/bits/std_function.h:706 (memcached+0x000000501787)
          #11 execute_client_request_packet(Cookie&, cb::mcbp::Request const&) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/mcbp_executors.cc:852 (memcached+0x000000501787)
          #12 execute_request_packet(Cookie&, cb::mcbp::Request const&) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/mcbp_executors.cc:876 (memcached+0x000000501997)
          #13 Cookie::execute() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/cookie.cc:124 (memcached+0x0000004e4aeb)
          #14 StateMachine::conn_execute() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/statemachine.cc:410 (memcached+0x00000053799c)
          #15 StateMachine::execute() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/statemachine.cc:137 (memcached+0x000000539cd7)
          #16 Connection::runStateMachinery() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/connection.cc:1377 (memcached+0x0000004cae77)
          #17 Connection::runEventLoop(short) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/connection.cc:1451 (memcached+0x0000004cd66e)
          #18 run_event_loop(Connection*, short) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/connections.cc:148 (memcached+0x0000004e2f0b)
          #19 event_handler(int, short, void*) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/memcached.cc:840 (memcached+0x000000432d2d)
          #20 event_persist_closure /home/couchbase/jenkins/workspace/cbdeps-platform-build-old/deps/packages/build/libevent/libevent-prefix/src/libevent/event.c:1580 (libevent_core.so.2.1.8+0x000000017086)
          #21 event_process_active_single_queue /home/couchbase/jenkins/workspace/cbdeps-platform-build-old/deps/packages/build/libevent/libevent-prefix/src/libevent/event.c:1639 (libevent_core.so.2.1.8+0x000000017086)
          #22 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/platform/src/cb_pthreads.cc:58 (libplatform_so.so.0.1.0+0x000000009c5f)
          #23 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/platform/src/cb_pthreads.cc:71 (libplatform_so.so.0.1.0+0x000000009c5f)
          #24   (libtsan.so.0+0x000000024feb)
       
        Location is global 'auditHandle' of size 8 at 0x0000009b0130 (memcached+0x0000009b0130)
       
        Mutex M1049192993527234104 is already destroyed.
       
        Thread T8 'mc:worker_2' (tid=24152, running) created by main thread at:
          #0 pthread_create  (libtsan.so.0+0x0000000282a0)
          #1 cb_create_named_thread(unsigned long*, void (*)(void*), void*, int, char const*) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/platform/src/cb_pthreads.cc:109 (libplatform_so.so.0.1.0+0x00000000995b)
          #2 create_worker /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/thread.cc:111 (memcached+0x00000049da1d)
          #3 thread_init(unsigned long, event_base*, void (*)(int, short, void*)) /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/thread.cc:458 (memcached+0x00000049da1d)
          #4 memcached_main /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/memcached.cc:2457 (memcached+0x00000043573a)
          #5 main /home/couchbase/jenkins/workspace/kv_engine-master-post-commit-TSan/kv_engine/daemon/main.cc:33 (memcached+0x00000042145e)
      

      Logs: http://cv.jenkins.couchbase.com/job/kv_engine-master-post-commit-TSan/352/ThreadSanitizer/

      Attachments

        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:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty