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

Use-after-free during collection scan when resizing oplog happen

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Critical - P2 Critical - P2
    • None
    • Affects Version/s: 8.0.3
    • Component/s: None
    • None
    • Query Execution
    • ALL
    • Hide

      Right now we don't have a reproducer. We might triage this issue later.

      Show
      Right now we don't have a reproducer. We might triage this issue later.
    • QE 2025-05-12
    • None
    • 0
    • None
    • None
    • None
    • None
    • None
    • None

      We found a use-after-free in mongod during the collection scanning when resizing the oplog happens. Below is a log snippet that only includes the two involving threads/connections:

      ```text

      1. collection scan {"t":\{"$date":"2025-04-10T08:28:28.773+00:00"}

        ,"s":"D2", "c":"COMMAND",  "id":21965,   "ctx":"conn78","msg":"About to run the command","attr":{"db":"local","client":"[another node]","commandArgs":

        Unknown macro: {"find"}

        ,"readConcern":{"level":"local"},"term":-1,"maxTimeMSOpOnly":30000,"$readPreference":{"mode":"secondaryPreferred"},"$clusterTime":{"clusterTime":{"$timestamp":

        {"t":1744273708,"i":4}

        }},"$db":"local"}}}

        {"t":\{"$date":"2025-04-10T08:28:28.773+00:00"}

        ,"s":"I",  "c":"NETWORK",  "id":6788700, "ctx":"conn78","msg":"Received first command on ingress connection since session start or auth handshake","attr":{"elapsedMillis":18}}

      ... ...

       

      1. resize oplog
      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"D2", "c":"COMMAND",  "id":21965,   "ctx":"conn65","msg":"About to run the command","attr":{"db":"admin","client":"[client]","commandArgs":{"replSetResizeOplog":1,"size":990,"minRetentionHours":0,"lsid":{"id":{"$uuid":"bc686bb0-8b44-4c50-9c09-9215c8ac5f0c"}},"$clusterTime":{"clusterTime":{"$timestamp":{"t":1744273708,"i":4}},"signature":{"hash":{"$binary":{"base64":"AAAAAAAAAAAAAAAAAAAAAAAAAAA=","subType":"0"}},"keyId":0}},"$db":"admin"}}}

      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"D2", "c":"COMMAND",  "id":21961,   "ctx":"conn65","msg":"Admin only command","attr":{"command":"replSetResizeOplog"}}

      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"D2", "c":"COMMAND",  "id":21955,   "ctx":"conn65","msg":"Applying default readConcern on command","attr":{"readConcernDefault":{"readConcern":{"level":"local"}},"command":"replSetResizeOplog"}}

      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"I",  "c":"NETWORK",  "id":6788700, "ctx":"conn65","msg":"Received first command on ingress connection since session start or auth handshake","attr":{"elapsedMillis":118}}

      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"I",  "c":"STORAGE",  "id":20497,   "ctx":"conn65","msg":"replSetResizeOplog success","attr":{"size":1038090240,"minRetentionHours":0}}

      {"t":\{"$date":"2025-04-10T08:28:28.873+00:00"}

      ,"s":"I",  "c":"COMMAND",  "id":51803,   "ctx":"conn65","msg":"Slow query","attr":{"type":"command","isFromUserConnection":true,"ns":"admin.$cmd","collectionType":"admin","command":{"replSetResizeOplog":1,"size":990,"minRetentionHours":0,"lsid":{"id":{"$uuid":"bc686bb0-8b44-4c50-9c09-9215c8ac5f0c"}},"$clusterTime":{"clusterTime":{"$timestamp":{"t":1744273708,"i":4}},"signature":{"hash":{"$binary":{"base64":"AAAAAAAAAAAAAAAAAAAAAAAAAAA=","subType":"0"}},"keyId":0}},"$db":"admin"},"numYields":0,"reslen":163,"locks":{"ReplicationStateTransition":{"acquireCount":{"w":1}},"Global":{"acquireCount":{"w":1}},"Database":{"acquireCount":{"w":1}},"oplog":{"acquireCount":

      {"W":1}

      }},"readConcern":{"level":"local","provenance":"implicitDefault"},"storage":{"data":{"txnBytesDirty":256}},"cpuNanos":243,"remote":[client],"protocol":"op_msg","queues":{"ingress":

      {"admissions":1}

      ,"execution":{"admissions":2}},"workingMillis":0,"durationMillis":0}}

      ```

      ASAN log snippet:
      ```

      ==675==ERROR: AddressSanitizer: heap-use-after-free on address 0x611000a1aa90 at pc 0x55556ae7acef bp 0x7fffb80d7c70 sp 0x7fffb80d7c68
      READ of size 8 at 0x611000a1aa90 thread T155 (conn78)

      mongo::CollectionScan::initCursor(mongo::OperationContext*, mongo::CollectionPtr const&, bool) @ /mongo/src/mongo/db/exec/collection_scan.cpp:239
      mongo::CollectionScan::doWork(unsigned long*)::$_5::operator()() const @ /mongo/src/mongo/db/exec/collection_scan.cpp:289
      mongo::PlanStage::work(unsigned long*) @ /mongo/src/mongo/db/exec/plan_stage.h:214
      mongo::ProjectionStage::doWork(unsigned long*) @ /mongo/src/mongo/db/exec/projection.cpp:151
      mongo::PlanStage::work(unsigned long*) @ /mongo/src/mongo/db/exec/plan_stage.h:214
      mongo::LimitStage::doWork(unsigned long*) @ /mongo/src/mongo/db/exec/limit.cpp:65
      mongo::PlanStage::work(unsigned long*) @ /mongo/src/mongo/db/exec/plan_stage.h:214
      mongo::PlanExecutorImpl::getNextBatch(unsigned long, std::function<bool (mongo::BSONObj const&, mongo::BSONObj const&, unsigned long)>) @ /mongo/src/mongo/db/query/plan_executor_impl.cpp:543
      mongo::(anonymous namespace)::FindCmd::Invocation::batchedExecute(unsigned long, mongo::PlanExecutor*, mongo::CursorResponseBuilder&, mongo::ResourceConsumption::DocumentUnitCounter&) @ /mongo/src/mongo/db/commands/find_cmd.cpp:524
      mongo::CommandHelpers::runCommandInvocation(mongo::OperationContext*, mongo::OpMsgRequest const&, mongo::CommandInvocation*, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.cpp:221
      mongo::(anonymous namespace)::runCommandInvocation(mongo::RequestExecutionContext const&, mongo::CommandInvocation*) @ /mongo/src/mongo/db/service_entry_point_common.cpp:221
      mongo::(anonymous namespace)::RunCommandImpl::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:708
      mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec() @ /mongo/src/mongo/db/service_entry_point_common.cpp:1962
      mongo::(anonymous namespace)::ExecCommandDatabase::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:513
      mongo::(anonymous namespace)::executeCommand(mongo::(anonymous namespace)::HandleRequest::ExecutionContext&) @ /mongo/src/mongo/db/service_entry_point_common.cpp:2272
      mongo::(anonymous namespace)::HandleRequest::runOperation() @ /mongo/src/mongo/db/service_entry_point_common.cpp:2401
      mongo::ServiceEntryPointMongod::handleRequest(mongo::OperationContext*, mongo::Message const&) @ /mongo/src/mongo/db/service_entry_point_mongod.cpp:375
      mongo::transport::SessionWorkflow::Impl::_dispatchWork() @ /mongo/src/mongo/transport/session_workflow.cpp:718
      auto mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0::operator()<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >) const @ /mongo/src/mongo/transport/session_workflow.cpp:781
      auto mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::generalImpl<mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(mongo::Status&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}>(mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}&&, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}&&) @ /mongo/src/mongo/util/future_impl.h:1287
      mongo::transport::SessionWorkflow::Impl::_scheduleIteration()::$_2::operator()(mongo::Status) const @ /mongo/src/mongo/transport/session_workflow.cpp:806
      mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const @ /mongo/src/mongo/util/functional.h:220
      mongo::unique_function<void (mongo::Status)>::makeImpl<mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}>(mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}&&)::SpecificImpl::call(mongo::Status&&) @ /mongo/src/mongo/util/functional.h:262
      mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const @ /mongo/src/mongo/util/functional.h:220
      mongo::transport::service_executor_synchronous_detail::ServiceExecutorSyncImpl::SharedState::schedule(mongo::unique_function<void (mongo::Status)>, mongo::StringData)::$_0::operator()() const @ /mongo/src/mongo/transport/service_executor_synchronous.cpp:154
      mongo::unique_function<void ()>::operator()() const @ /mongo/src/mongo/util/functional.h:220
      mongo::unique_function<void ()>::operator()() const @ /mongo/src/mongo/util/functional.h:220

      0x611000a1aa90 is located 16 bytes inside of 224-byte region [0x611000a1aa80,0x611000a1ab60)
      freed by thread T143 (conn65) here:

      operator delete(void*, unsigned long) @ ??:?
      std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() @ /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:174
      immer::detail::hamts::champ<std::pair<mongo::UUID, std::shared_ptr<mongo::Collection> >, immer::map<mongo::UUID, std::shared_ptr<mongo::Collection>, mongo::HashImprover<mongo::UUID::Hash, mongo::UUID>, std::equal_to<mongo::UUID>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::refcount_policy, void, immer::no_transience_policy, true, true>, 5u>::hash_key, immer::map<mongo::UUID, std::shared_ptr<mongo::Collection>, mongo::HashImprover<mongo::UUID::Hash, mongo::UUID>, std::equal_to<mongo::UUID>, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::refcount_policy, void, immer::no_transience_policy, true, true>, 5u>::equal_key, immer::memory_policy<immer::heap_policy<immer::cpp_heap>, immer::refcount_policy, void, immer::no_transience_policy, true, true>, 5u>::dec() const @ /mongo/src/third_party/immer/dist/immer/detail/hamts/champ.hpp:190
      std::Sp_counted_base<(_gnu_cxx::_Lock_policy)2>::_M_release() @ /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/shared_ptr_base.h:158
      mongo::CollectionCatalog::write(mongo::OperationContext*, std::function<void (mongo::CollectionCatalog&)>) @ /mongo/src/mongo/db/catalog/collection_catalog.cpp:859
      mongo::CollectionCatalog::PublishCatalogUpdates::commit(mongo::OperationContext*, boost::optional<mongo::Timestamp>) @ /mongo/src/mongo/db/catalog/collection_catalog.cpp:497
      mongo::RecoveryUnit::_executeCommitHandlers(boost::optional<mongo::Timestamp>) @ /mongo/src/mongo/db/storage/recovery_unit.cpp:173
      mongo::RecoveryUnit::commitRegisteredChanges(boost::optional<mongo::Timestamp>) @ /mongo/src/mongo/db/storage/recovery_unit.cpp:106
      mongo::WiredTigerRecoveryUnit::_commit() @ /mongo/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp:128
      mongo::WiredTigerRecoveryUnit::doCommitUnitOfWork() @ /mongo/src/mongo/db/storage/wiredtiger/wiredtiger_recovery_unit.cpp:175
      mongo::RecoveryUnit::commitUnitOfWork() @ /mongo/src/mongo/db/storage/recovery_unit.cpp:118
      mongo::WriteUnitOfWork::commit() @ /mongo/src/mongo/db/storage/write_unit_of_work.cpp:155
      mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}::operator()() const @ /mongo/src/mongo/db/commands/resize_oplog.cpp:124
      auto mongo::writeConflictRetry<mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}>(mongo::OperationContext*, mongo::StringData, mongo::NamespaceStringOrUUID const&, mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}&&, boost::optional<unsigned long>) @ /mongo/src/mongo/db/concurrency/exception_util.h:183
      mongo::BasicCommand::runWithReplyBuilder(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.h:1164
      mongo::BasicCommandWithReplyBuilderInterface::Invocation::run(mongo::OperationContext*, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.cpp:961
      mongo::CommandHelpers::runCommandInvocation(mongo::OperationContext*, mongo::OpMsgRequest const&, mongo::CommandInvocation*, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.cpp:221
      mongo::(anonymous namespace)::runCommandInvocation(mongo::RequestExecutionContext const&, mongo::CommandInvocation*) @ /mongo/src/mongo/db/service_entry_point_common.cpp:221
      mongo::(anonymous namespace)::RunCommandImpl::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:708
      mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec() @ /mongo/src/mongo/db/service_entry_point_common.cpp:1962
      mongo::(anonymous namespace)::ExecCommandDatabase::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:513
      mongo::(anonymous namespace)::executeCommand(mongo::(anonymous namespace)::HandleRequest::ExecutionContext&) @ /mongo/src/mongo/db/service_entry_point_common.cpp:2272
      mongo::(anonymous namespace)::HandleRequest::runOperation() @ /mongo/src/mongo/db/service_entry_point_common.cpp:2401
      mongo::ServiceEntryPointMongod::handleRequest(mongo::OperationContext*, mongo::Message const&) @ /mongo/src/mongo/db/service_entry_point_mongod.cpp:375
      mongo::transport::SessionWorkflow::Impl::_dispatchWork() @ /mongo/src/mongo/transport/session_workflow.cpp:718
      auto mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0::operator()<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >) const @ /mongo/src/mongo/transport/session_workflow.cpp:781
      auto mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::generalImpl<mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(mongo::Status&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}>(mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}&&, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}&&) @ /mongo/src/mongo/util/future_impl.h:1287
      mongo::transport::SessionWorkflow::Impl::_scheduleIteration()::$_2::operator()(mongo::Status) const @ /mongo/src/mongo/transport/session_workflow.cpp:806
      mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const @ /mongo/src/mongo/util/functional.h:220
      mongo::unique_function<void (mongo::Status)>::makeImpl<mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}>(mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}&&)::SpecificImpl::call(mongo::Status&&) @ /mongo/src/mongo/util/functional.h:262

       

      previously allocated by thread T125 (conn47) here:

      operator new(unsigned long) @ ??:?
      _gnu_cxx::new_allocator<std::_Sp_counted_ptr_inplace<mongo::CollectionImpl, std::allocator<mongo::CollectionImpl>, (_gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) @ /usr/lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/ext/new_allocator.h:121
      mongo::CollectionCatalog::lookupCollectionByNamespaceForMetadataWrite(mongo::OperationContext*, mongo::NamespaceString const&) const @ /mongo/src/mongo/db/catalog/collection_catalog.cpp:1855
      mongo::AutoGetCollection::getWritableCollection(mongo::OperationContext*) @ /mongo/src/mongo/db/catalog_raii.cpp:465
      mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}::operator()() const @ /mongo/src/mongo/db/commands/resize_oplog.cpp:117
      auto mongo::writeConflictRetry<mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}>(mongo::OperationContext*, mongo::StringData, mongo::NamespaceStringOrUUID const&, mongo::(anonymous namespace)::CmdReplSetResizeOplog::run(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::BSONObjBuilder&)::{lambda()#3}&&, boost::optional<unsigned long>) @ /mongo/src/mongo/db/concurrency/exception_util.h:183
      mongo::BasicCommand::runWithReplyBuilder(mongo::OperationContext*, mongo::DatabaseName const&, mongo::BSONObj const&, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.h:1164
      mongo::BasicCommandWithReplyBuilderInterface::Invocation::run(mongo::OperationContext*, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.cpp:961
      mongo::CommandHelpers::runCommandInvocation(mongo::OperationContext*, mongo::OpMsgRequest const&, mongo::CommandInvocation*, mongo::rpc::ReplyBuilderInterface*) @ /mongo/src/mongo/db/commands.cpp:221
      mongo::(anonymous namespace)::runCommandInvocation(mongo::RequestExecutionContext const&, mongo::CommandInvocation*) @ /mongo/src/mongo/db/service_entry_point_common.cpp:221
      mongo::(anonymous namespace)::RunCommandImpl::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:708
      mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec() @ /mongo/src/mongo/db/service_entry_point_common.cpp:1962
      mongo::(anonymous namespace)::ExecCommandDatabase::run()::{lambda()#1}::operator()() const @ /mongo/src/mongo/db/service_entry_point_common.cpp:513
      mongo::(anonymous namespace)::executeCommand(mongo::(anonymous namespace)::HandleRequest::ExecutionContext&) @ /mongo/src/mongo/db/service_entry_point_common.cpp:2272
      mongo::(anonymous namespace)::HandleRequest::runOperation() @ /mongo/src/mongo/db/service_entry_point_common.cpp:2401
      mongo::ServiceEntryPointMongod::handleRequest(mongo::OperationContext*, mongo::Message const&) @ /mongo/src/mongo/db/service_entry_point_mongod.cpp:375
      mongo::transport::SessionWorkflow::Impl::_dispatchWork() @ /mongo/src/mongo/transport/session_workflow.cpp:718
      auto mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0::operator()<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >) const @ /mongo/src/mongo/transport/session_workflow.cpp:781
      auto mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::generalImpl<mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(mongo::Status&&)#1}, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}>(mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda(std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> >&&)#1}&&, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&, mongo::future_details::FutureImpl<std::unique_ptr<mongo::transport::SessionWorkflow::Impl::WorkItem, std::default_delete<mongo::transport::SessionWorkflow::Impl::WorkItem> > >::then<mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0>(mongo::CleanupFuturePolicy<false>, mongo::transport::SessionWorkflow::Impl::_doOneIteration()::$_0&&) &&::{lambda()#1}&&) @ /mongo/src/mongo/util/future_impl.h:1287
      mongo::transport::SessionWorkflow::Impl::_scheduleIteration()::$_2::operator()(mongo::Status) const @ /mongo/src/mongo/transport/session_workflow.cpp:806
      mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const @ /mongo/src/mongo/util/functional.h:220
      mongo::unique_function<void (mongo::Status)>::makeImpl<mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}>(mongo::transport::SessionWorkflow::Impl::_captureContext(mongo::unique_function<void (mongo::Status)>)::{lambda(mongo::Status)#1}&&)::SpecificImpl::call(mongo::Status&&) @ /mongo/src/mongo/util/functional.h:262
      mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const @ /mongo/src/mongo/util/functional.h:220
      mongo::transport::service_executor_synchronous_detail::ServiceExecutorSyncImpl::SharedState::schedule(mongo::unique_function<void (mongo::Status)>, mongo::StringData)::$_0::operator()() const @ /mongo/src/mongo/transport/service_executor_synchronous.cpp:154
      mongo::unique_function<void ()>::operator()() const @ /mongo/src/mongo/util/functional.h:220
      mongo::unique_function<void ()>::operator()() const @ /mongo/src/mongo/util/functional.h:220

      ```

       

       

            Assignee:
            mihai.andrei@mongodb.com Mihai Andrei
            Reporter:
            liucy1998@outlook.com Congyu Liu
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: