Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-72494

TSAN data race in session_workflow_test

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Gone away
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Service Arch
    • ALL
    • 10

    Description

      Discovered while patch-building an unrelated issue (SERVER-72373).

      Needs investigation. Never seen this before and it may be due to some change in the codebase outside of SessionWorkflow?

      https://spruce.mongodb.com/task/mongodb_mongo_master_enterprise_rhel80_debug_tsan_run_unittests_patch_58f8289c41a567c674ee623ab49ed6f866f407cc_63b4965156234361d0f177fd_23_01_03_20_56_18/tests?execution=0&sortBy=STATUS&sortDir=ASC

      Test: build/install/bin/transport_test
      Task: run_unittests
      Build Variant: enterprise-rhel80-debug-tsan
      Project: mongodb-mongo-master

      https://parsley.mongodb.com/resmoke/453bc95a8b280085e2beb8e91f965fa7/test/1736ea1802ecf2a8da7f094eb4148593?bookmarks=0,452,617

      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.167Z I  TEST     23063   [main] "Running","attr":{"suite":"SessionWorkflowWithBorrowedThreadsTest"}
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.167Z I  TEST     23059   [main] "Running","attr":{"test":"DefaultLoop","rep":1,"reps":1}
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.169Z I  TEST     5014106 [main] "Running success case"
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.169Z I  NETWORK  22943   [main] "Connection accepted","attr":{"remote":":27017","uuid":{"uuid":{"$uuid":"69cb5d05-3378-4849-a43d-a9bcb3213668"}},"connectionId":35,"connectionCount":1}
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.170Z I  TEST     5014102 [SessionWorkflowTest-0] "Finished waiting for data","attr":{"error":{"code":0,"codeName":"OK"}}
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.171Z I  TEST     5014103 [conn35] "Sourced message","attr":{"error":{"code":0,"codeName":"OK"}}
      [cpp_unit_test:transport_test] | 2023-01-03T21:35:15.172Z I  TEST     5014100 [SessionWorkflowTest-0] "Handled request","attr":{"error":{"code":0,"codeName":"OK"}}
      [cpp_unit_test:transport_test] ==================
      [cpp_unit_test:transport_test] WARNING: ThreadSanitizer: data race (pid=120378)
      [cpp_unit_test:transport_test]   Write of size 8 at 0x7b30000029c8 by thread T373 (mutexes: write M482865031147432344):
      [cpp_unit_test:transport_test]     #0 mongo::Client::_setOperationContext(mongo::OperationContext*) /data/mci/dcd6505e429fb4ae0754cc26c970fb00/src/src/mongo/db/client.h:274:16 (libservice_context.so+0x5ee2e)
      [cpp_unit_test:transport_test]     #1 mongo::ServiceContext::_delistOperation(mongo::OperationContext*) /data/mci/dcd6505e429fb4ae0754cc26c970fb00/src/src/mongo/db/service_context.cpp:411:13 (libservice_context.so+0x5ee2e)
      [cpp_unit_test:transport_test]     #2 mongo::ServiceContext::killAndDelistOperation(mongo::OperationContext*, mongo::ErrorCodes::Error) /data/mci/dcd6505e429fb4ae0754cc26c970fb00/src/src/mongo/db/service_context.cpp:429:5 (libservice_context.so+0x5fa53)
      [cpp_unit_test:transport_test]     #3 mongo::transport::SessionWorkflow::Impl::_acceptResponse(mongo::DbResponse) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/transport/session_workflow.cpp:661:22 (libservice_entry_point.so+0x36824)
      [cpp_unit_test:transport_test]     #4 auto mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8::operator()<mongo::DbResponse>(mongo::DbResponse) const /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/transport/session_workflow.cpp:724:13 (libservice_entry_point.so+0x3c41b)
      [cpp_unit_test:transport_test]     #5 auto mongo::future_details::call<mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&, mongo::DbResponse>(mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&, mongo::DbResponse&&) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:291:12 (libservice_entry_point.so+0x3c41b)
      [cpp_unit_test:transport_test]     #6 auto mongo::future_details::statusCall<mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&, mongo::DbResponse>(mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&, mongo::DbResponse&&) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:314:13 (libservice_entry_point.so+0x3c41b)
      [cpp_unit_test:transport_test]     #7 auto mongo::future_details::FutureImpl<mongo::DbResponse>::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8, 0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&&) &&::'lambda'()::operator()() const::'lambda'(mongo::future_details::SharedStateImpl<mongo::DbResponse>*, mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*)::operator()(mongo::future_details::SharedStateImpl<mongo::DbResponse>*, mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:989:41 (libservice_entry_point.so+0x3cd20)
      [cpp_unit_test:transport_test]     #8 mongo::future_details::FutureImpl<mongo::CleanupFuturePolicy<false> > mongo::future_details::FutureImpl<mongo::DbResponse>::makeContinuation<void, auto mongo::future_details::FutureImpl<mongo::DbResponse>::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8, 0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&&) &&::'lambda'()::operator()() const::'lambda'(mongo::future_details::SharedStateImpl<mongo::DbResponse>*, mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*)>(mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&&)::'lambda'(mongo::future_details::SharedStateBase*)::operator()(mongo::future_details::SharedStateBase*) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:1354:13 (libservice_entry_point.so+0x3cd20)
      [cpp_unit_test:transport_test]     #9 auto mongo::unique_function<void (mongo::future_details::SharedStateBase*)>::makeImpl<mongo::future_details::FutureImpl<mongo::CleanupFuturePolicy<false> > mongo::future_details::FutureImpl<mongo::DbResponse>::makeContinuation<void, auto mongo::future_details::FutureImpl<mongo::DbResponse>::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8, 0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&&) &&::'lambda'()::operator()() const::'lambda'(mongo::future_details::SharedStateImpl<mongo::DbResponse>*, mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*)>(mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_8&&)::'lambda'(mongo::future_details::SharedStateBase*)>(mongo::CleanupFuturePolicy<false>&&)::SpecificImpl::call(mongo::future_details::SharedStateBase*&&) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/functional.h:259:21 (libservice_entry_point.so+0x3cd20)
      [cpp_unit_test:transport_test]     #10 mongo::unique_function<void (mongo::future_details::SharedStateBase*)>::operator()(mongo::future_details::SharedStateBase*) const /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/functional.h:217:22 (transport_test+0x19e33d)
      [cpp_unit_test:transport_test]     #11 mongo::future_details::SharedStateBase::transitionToFinished() /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:482:13 (transport_test+0x19e33d)
      [cpp_unit_test:transport_test]     #12 mongo::future_details::SharedStateImpl<mongo::DbResponse>::fillFromMove(mongo::future_details::SharedStateImpl<mongo::DbResponse>&&) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:622:9 (transport_test+0x1febac)
      [cpp_unit_test:transport_test]     #13 mongo::future_details::FutureImpl<mongo::DbResponse>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::DbResponse>*) &&::'lambda'()::operator()() const::'lambda'(mongo::future_details::SharedStateBase*)::operator()(mongo::future_details::SharedStateBase*) const /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/future_impl.h:1260:29 (transport_test+0x1fe8a8)
      [cpp_unit_test:transport_test]     #14 auto mongo::unique_function<void (mongo::future_details::SharedStateBase*)>::makeImpl<mongo::future_details::FutureImpl<mongo::DbResponse>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::DbResponse>*) &&::'lambda'()::operator()() const::'lambda'(mongo::future_details::SharedStateBase*)>(mongo::DbResponse&&)::SpecificImpl::call(mongo::future_details::SharedStateBase*&&) /data/mci/bae9443fd632463083a8f8ba535a5f4f/src/src/mongo/util/functional.h:259:21 (transport_test+0x1fe8a8)
      
      

      Attachments

        Activity

          People

            backlog-server-servicearch Backlog - Service Architecture
            billy.donahue@mongodb.com Billy Donahue
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: