Skip to main content

mongoinsert

· 8 min read

mongo 的wiredtiger 是怎么组织kv结构的呢? 我现在还是没有弄懂

堆栈:

Thread 41 "conn1" hit Breakpoint 5, __wt_btcur_insert (cbt=cbt@entry=0x555560bd2000) at src/third_party/wiredtiger/src/btree/bt_cursor.c:763
763 {
(gdb) bt
#0 __wt_btcur_insert (cbt=cbt@entry=0x555560bd2000) at src/third_party/wiredtiger/src/btree/bt_cursor.c:763
#1 0x0000555556d6149a in __curfile_insert (cursor=0x555560bd2000) at src/third_party/wiredtiger/src/cursor/cur_file.c:266
#2 0x0000555556cd3ef4 in mongo::wiredTigerCursorInsert (opCtx=opCtx@entry=0x555560af8180, cursor=cursor@entry=0x555560bd2000)
at src/mongo/db/storage/wiredtiger/wiredtiger_cursor_helpers.cpp:39
#3 0x0000555556d131bd in mongo::WiredTigerRecordStore::_insertRecords (this=0x55555bfddc00, opCtx=0x555560af8180, records=<optimized out>, timestamps=0x55555c01a478, nRecords=1)
at src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp:1319
#4 0x0000555556d13ae7 in mongo::WiredTigerRecordStore::insertRecords (this=<optimized out>, opCtx=<optimized out>, records=<optimized out>, timestamps=...)
at /usr/include/c++/9/bits/stl_vector.h:915
#5 0x0000555557bf9972 in mongo::CollectionImpl::_insertDocuments (this=0x55555bfe1410, opCtx=0x555560af8180, begin=..., end=..., opDebug=0x555560b40a50, fromMigrate=false)
at /usr/include/c++/9/bits/unique_ptr.h:360
#6 0x0000555557bfa333 in mongo::CollectionImpl::insertDocuments (this=this@entry=0x55555bfe1410, opCtx=opCtx@entry=0x555560af8180, begin=begin@entry=
{stmtIds = std::vector of length 1, capacity 1 = {-1}, oplogSlot = {static kTermFieldName = {_data = 0x555559e64ab2 "t", _size = 1}, static kTimestampFieldName = {_data = 0x555559e5c074 "ts", _size = 2}, static kUninitializedTerm = -1, static kInitialTerm = 0, _timestamp = {static kAllowUnstableCheckpointsSentinel = {static kAllowUnstableCheckpointsSentinel = <same as static member of an already seen type>, i = 1, secs = 0}, i = 0, secs = 0}, _term = -1}, doc = {static kMinBSONLength = 5 '\005', static kEmptyObjectPrototype = "\005\000\000\000", _objdata = 0x55556036f92b "-", _ownedBuffer = {_buffer = {_holder = {px = 0x55556036f900}, static kHolderSize = 8}}}}, end=end@entry=
{stmtIds = std::vector of length -28, capacity 23456275625363 = {<error reading variable>, opDebug=0x555560b40a50, fromMigrate=false)
at src/mongo/db/catalog/collection_impl.cpp:663
#7 0x0000555557a0a1ae in mongo::write_ops_exec::(anonymous namespace)::insertDocuments (opCtx=0x555560af8180, collection=..., begin=..., end=
{stmtIds = std::vector of length -28, capacity 23456275625363 = {<error reading variable>, fromMigrate=<optimized out>) at /usr/include/c++/9/bits/stl_iterator.h:871
#8 0x0000555557a0a631 in mongo::write_ops_exec::(anonymous namespace)::<lambda()>::operator()(void) const (__closure=0x7fffe5962a30) at src/mongo/db/catalog_raii.h:151
#9 0x0000555557a0ac1b in mongo::writeConflictRetry<mongo::write_ops_exec::(anonymous namespace)::insertBatchAndHandleErrors(mongo::OperationContext*, const mongo::write_ops::InsertCommandRequest&, std::vector<mongo::InsertStatement>&, mongo::write_ops_exec::(anonymous namespace)::LastOpFixer*, mongo::write_ops_exec::WriteResult*, mongo::OperationSource)::<lambda()> > (f=..., ns=..., opStr=..., opCtx=0x555560af8180) at /usr/include/c++/9/bits/stl_iterator.h:806
#10 mongo::write_ops_exec::(anonymous namespace)::insertBatchAndHandleErrors (source=<optimized out>, out=<optimized out>, lastOpFixer=<optimized out>,
batch=std::vector of length 1, capacity 1 = {...}, wholeOp=..., opCtx=<optimized out>) at src/mongo/db/ops/write_ops_exec.cpp:502
#11 mongo::write_ops_exec::performInserts (opCtx=<optimized out>, opCtx@entry=0x555560af8180, wholeOp=..., source=@0x7fffe5962e00: mongo::kStandard)
at src/mongo/db/ops/write_ops_exec.cpp:655
#12 0x000055555791d28e in mongo::(anonymous namespace)::CmdInsert::Invocation::typedRun (this=0x555560ba0000, opCtx=0x555560af8180) at src/mongo/db/commands.h:1173
#13 0x000055555791e8a0 in mongo::TypedCommand<mongo::(anonymous namespace)::CmdInsert>::InvocationBase::_callTypedRun (opCtx=<optimized out>, this=<optimized out>)
at src/mongo/db/commands.h:1255
#14 mongo::TypedCommand<mongo::(anonymous namespace)::CmdInsert>::InvocationBase::_runImpl (reply=0x555561392000, opCtx=<optimized out>, this=<optimized out>)
at src/mongo/db/commands.h:1256
#15 mongo::TypedCommand<mongo::(anonymous namespace)::CmdInsert>::InvocationBase::run (this=<optimized out>, opCtx=<optimized out>, reply=0x555561392000)
at src/mongo/db/commands.h:1261
#16 0x0000555558791662 in mongo::CommandHelpers::runCommandInvocation (opCtx=0x555560af8180, request=..., invocation=0x555560ba0000, response=0x555561392000)
at src/mongo/db/commands.cpp:200
#17 0x0000555558797d73 in mongo::CommandHelpers::<lambda()>::operator() (__closure=0x7fffe5963180) at src/mongo/db/commands.cpp:184
#18 mongo::makeReadyFutureWith<mongo::CommandHelpers::runCommandInvocation(std::shared_ptr<mongo::RequestExecutionContext>, std::shared_ptr<mongo::CommandInvocation>, mongo::transport::ServiceExecutor::ThreadingModel)::<lambda()> > (func=...) at src/mongo/util/future.h:1208
#19 mongo::CommandHelpers::runCommandInvocation (rec=std::shared_ptr<class mongo::RequestExecutionContext> (use count 11, weak count 0) = {...},
invocation=std::shared_ptr<class mongo::CommandInvocation> (use count 3, weak count 0) = {...}, threadingModel=<optimized out>) at src/mongo/db/commands.cpp:185
#20 0x0000555556c48367 in mongo::(anonymous namespace)::runCommandInvocation (rec=std::shared_ptr<class mongo::RequestExecutionContext> (empty) = {...},
invocation=std::shared_ptr<class mongo::CommandInvocation> (empty) = {...}) at /usr/include/c++/9/bits/shared_ptr_base.h:756
--Type <RET> for more, q to quit, c to continue without paging--
#21 0x0000555556c5c389 in mongo::(anonymous namespace)::InvokeCommand::<lambda()>::operator() (__closure=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:756
#22 mongo::makeReadyFutureWith<mongo::(anonymous namespace)::InvokeCommand::run()::<lambda()> > (func=...) at src/mongo/util/future.h:1211
#23 mongo::(anonymous namespace)::InvokeCommand::run (this=0x55555c01a4a0) at src/mongo/db/service_entry_point_common.cpp:842
#24 mongo::(anonymous namespace)::RunCommandImpl::<lambda(auto:78*)>::operator()<mongo::(anonymous namespace)::InvokeCommand> (__closure=<optimized out>, path=0x55555c01a4a0)
at src/mongo/db/service_entry_point_common.cpp:1188
#25 mongo::future_util::AsyncState<mongo::(anonymous namespace)::InvokeCommand>::<lambda()>::operator() (this=<optimized out>, this=<optimized out>)
at src/mongo/util/future_util.h:742
#26 mongo::makeReadyFutureWith<mongo::future_util::AsyncState<State>::thenWithState(Launcher&&) && [with Launcher = mongo::(anonymous namespace)::RunCommandImpl::_runCommand()::<lambda(auto:78*)>; State = mongo::(anonymous namespace)::InvokeCommand]::<lambda()> > (func=...) at src/mongo/util/future.h:1211
#27 mongo::future_util::AsyncState<mongo::(anonymous namespace)::InvokeCommand>::thenWithState<mongo::(anonymous namespace)::RunCommandImpl::_runCommand()::<lambda(auto:78*)> > (
launcher=..., this=<optimized out>) at src/mongo/util/future_util.h:747
#28 mongo::(anonymous namespace)::RunCommandImpl::_runCommand (this=<optimized out>) at src/mongo/db/service_entry_point_common.cpp:1188
#29 0x0000555556c5cc32 in mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern::_runCommandWithFailPoint (this=0x555560ba00e0)
at src/mongo/db/service_entry_point_common.cpp:1299
#30 0x0000555556c5d1c3 in mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern::_runImpl (this=0x555560ba00e0) at src/mongo/db/service_entry_point_common.cpp:1219
#31 0x0000555556c4b9ad in mongo::(anonymous namespace)::RunCommandImpl::<lambda()>::operator() (__closure=<optimized out>) at src/mongo/db/service_entry_point_common.cpp:730
#32 mongo::makeReadyFutureWith<mongo::(anonymous namespace)::RunCommandImpl::run()::<lambda()> > (func=...) at src/mongo/util/future.h:1211
#33 mongo::(anonymous namespace)::RunCommandImpl::run (this=0x555560ba00e0) at src/mongo/db/service_entry_point_common.cpp:728
#34 0x0000555556c4f5b2 in mongo::(anonymous namespace)::ExecCommandDatabase::<lambda()>::<lambda(auto:79*)>::operator()<mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern> (__closure=<optimized out>, runner=0x555560ba00e0) at src/mongo/db/service_entry_point_common.cpp:1651
#35 mongo::future_util::AsyncState<mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern>::<lambda()>::operator() (this=<optimized out>, this=<optimized out>)
at src/mongo/util/future_util.h:742
#36 mongo::makeReadyFutureWith<mongo::future_util::AsyncState<State>::thenWithState(Launcher&&) && [with Launcher = mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec()::<lambda()>::<lambda(auto:79*)>; State = mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern]::<lambda()> > (func=...) at src/mongo/util/future.h:1211
#37 mongo::future_util::AsyncState<mongo::(anonymous namespace)::RunCommandAndWaitForWriteConcern>::thenWithState<mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec()::<lambda()>::<lambda(auto:79*)> > (launcher=..., this=<optimized out>) at src/mongo/util/future_util.h:747
#38 mongo::(anonymous namespace)::ExecCommandDatabase::<lambda()>::operator() (__closure=<synthetic pointer>) at src/mongo/db/service_entry_point_common.cpp:1651
#39 mongo::(anonymous namespace)::ExecCommandDatabase::_commandExec (this=0x555560b57800) at src/mongo/db/service_entry_point_common.cpp:1658
#40 0x0000555556c58516 in mongo::(anonymous namespace)::ExecCommandDatabase::<lambda()>::operator() (__closure=<optimized out>) at src/mongo/db/service_entry_point_common.cpp:625
#41 mongo::makeReadyFutureWith<mongo::(anonymous namespace)::ExecCommandDatabase::run()::<lambda()> > (func=...) at src/mongo/util/future.h:1211
#42 mongo::(anonymous namespace)::ExecCommandDatabase::run (this=0x555560b57800) at src/mongo/db/service_entry_point_common.cpp:623
#43 mongo::(anonymous namespace)::<lambda()>::<lambda(auto:81*)>::operator()<mongo::(anonymous namespace)::ExecCommandDatabase> (__closure=<optimized out>, runner=0x555560b57800)
at src/mongo/db/service_entry_point_common.cpp:1880
#44 mongo::future_util::AsyncState<mongo::(anonymous namespace)::ExecCommandDatabase>::<lambda()>::operator()(void) const (this=<optimized out>, this=<optimized out>)
at src/mongo/util/future_util.h:742
#45 0x0000555556c58be2 in mongo::makeReadyFutureWith<mongo::future_util::AsyncState<State>::thenWithState(Launcher&&) && [with Launcher = mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()> mutable::<lambda(auto:81*)>; State = mongo::(anonymous namespace)::ExecCommandDatabase]::<lambda()> > (func=...) at src/mongo/util/future.h:1206
#46 mongo::future_util::AsyncState<mongo::(anonymous namespace)::ExecCommandDatabase>::thenWithState<mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()> mutable::<lambda(auto:81*)> > (launcher=..., this=0x7fffe59639c0) at src/mongo/util/future_util.h:747
#47 mongo::(anonymous namespace)::<lambda()>::operator() (__closure=<optimized out>) at src/mongo/db/service_entry_point_common.cpp:1880
#48 mongo::future_details::call<mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>&> (func=...)
at src/mongo/util/future_impl.h:255
--Type <RET> for more, q to quit, c to continue without paging--
#49 mongo::future_details::throwingCall<mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>&, mongo::future_details::FakeVoid> (func=...) at src/mongo/util/future_impl.h:308
#50 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda()>::<lambda(mongo::future_details::SharedState<mongo::future_details::FakeVoid>*, mongo::future_details::SharedState<void>*)>::operator() (output=0x555560b43200, input=<optimized out>, this=<optimized out>) at src/mongo/util/future_impl.h:935
#51 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda(mongo::future_details::SharedStateBase*)>::operator() (ssb=<optimized out>, this=<optimized out>)
at src/mongo/util/future_impl.h:1257
#52 mongo::unique_function<void(mongo::future_details::SharedStateBase*)>::callRegularVoid<mongo::future_details::FutureImpl<T>::makeContinuation(OnReady&&) [with Result = void; OnReady = mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda()>::<lambda(mongo::future_details::SharedState<mongo::future_details::FakeVoid>*, mongo::future_details::SharedState<void>*)>; T = mongo::future_details::FakeVoid]::<lambda(mongo::future_details::SharedStateBase*)> > (args#0=<optimized out>, f=..., isVoid=...)
at src/mongo/util/functional.h:145
#53 mongo::unique_function<void(mongo::future_details::SharedStateBase*)>::SpecificImpl::call(mongo::future_details::SharedStateBase *&&) (this=<optimized out>,
args#0=<optimized out>) at src/mongo/util/functional.h:159
#54 0x0000555556c14b27 in mongo::unique_function<void (mongo::future_details::SharedStateBase*)>::operator()(mongo::future_details::SharedStateBase*) const (args#0=<optimized out>,
this=0x555560b43818) at src/mongo/util/invariant.h:66
#55 mongo::future_details::SharedStateBase::transitionToFinished (this=0x555560b43800) at src/mongo/util/future_impl.h:441
#56 0x0000555556c5fcd2 in mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>::emplaceValue<mongo::future_details::FakeVoid> (this=<optimized out>)
at /usr/include/c++/9/new:174
#57 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::future_details::FakeVoid&&)#1}::operator()(mongo::future_details::FakeVoid&&) const (this=<optimized out>, val=...) at src/mongo/util/future_impl.h:1146
#58 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::generalImpl<mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::future_details::FakeVoid&&)#1}, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::Status&&)#2}, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda()#3}>(mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::future_details::FakeVoid&&)#1}&&, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::Status&&)#2}&&, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda()#3}&&) (notReady=...,
fail=..., success=..., this=<optimized out>) at src/mongo/util/future_impl.h:1191
#59 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::generalImpl<mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::future_details::FakeVoid&&)#1}, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::Status&&)#2}, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda()#3}>(mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::future_details::FakeVoid&&)#1}&&, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda(mongo::Status&&)#2}&&, mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) &&::{lambda()#3}&&) (
this=<optimized out>, success=..., fail=..., notReady=...) at src/mongo/util/future_impl.h:1182
#60 0x0000555556c520ac in mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::propagateResultTo(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*) && (output=<optimized out>, this=0x7fffe5963b40) at src/mongo/util/future_impl.h:1143
#61 mongo::SemiFuture<void>::propagateResultTo<mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*&>(mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>*&) && (arg=<synthetic pointer>: <optimized out>, this=0x7fffe5963b40) at src/mongo/util/future.h:285
#62 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda()>::<lambda(mongo::future_details::SharedState<mongo::future_details::FakeVoid>*, mongo::future_details::SharedState<void>*)>::operator() (output=0x555560b43800, input=<optimized out>, this=<optimized out>) at src/mongo/util/future_impl.h:935
#63 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda(mongo::future_details::SharedStateBase*)>::operator() (ssb=<optimized out>, this=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--
at src/mongo/util/future_impl.h:1257
#64 mongo::unique_function<void(mongo::future_details::SharedStateBase*)>::callRegularVoid<mongo::future_details::FutureImpl<T>::makeContinuation(OnReady&&) [with Result = void; OnReady = mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::(anonymous namespace)::executeCommand(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda()>::<lambda(mongo::future_details::SharedState<mongo::future_details::FakeVoid>*, mongo::future_details::SharedState<void>*)>; T = mongo::future_details::FakeVoid]::<lambda(mongo::future_details::SharedStateBase*)> > (args#0=<optimized out>, f=..., isVoid=...)
at src/mongo/util/functional.h:145
#65 mongo::unique_function<void(mongo::future_details::SharedStateBase*)>::SpecificImpl::call(mongo::future_details::SharedStateBase *&&) (this=<optimized out>,
args#0=<optimized out>) at src/mongo/util/functional.h:159
#66 0x0000555556c14b27 in mongo::unique_function<void (mongo::future_details::SharedStateBase*)>::operator()(mongo::future_details::SharedStateBase*) const (args#0=<optimized out>,
this=0x555560b42d18) at src/mongo/util/invariant.h:66
#67 mongo::future_details::SharedStateBase::transitionToFinished (this=0x555560b42d00) at src/mongo/util/future_impl.h:441
#68 0x0000555556c59141 in mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid>::emplaceValue<>() (this=0x555560b42d00) at /usr/include/c++/9/new:174
#69 mongo::Promise<void>::emplaceValue<, 0>()::{lambda(boost::intrusive_ptr<mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid> >&&)#1}::operator()(boost::intrusive_ptr<mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid> >&&) const (this=<optimized out>, sharedState=<synthetic pointer>) at src/mongo/util/future.h:854
#70 mongo::Promise<void>::setImpl<mongo::Promise<void>::emplaceValue<, 0>()::{lambda(boost::intrusive_ptr<mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid> >&&)#1}>(mongo::Promise<void>::emplaceValue<, 0>()::{lambda(boost::intrusive_ptr<mongo::future_details::SharedStateImpl<mongo::future_details::FakeVoid> >&&)#1}&&) (doSet=...,
this=0x7fffe5963ce0) at src/mongo/util/future.h:895
#71 mongo::Promise<void>::emplaceValue<, 0>() (this=0x7fffe5963ce0) at src/mongo/util/future.h:853
#72 mongo::(anonymous namespace)::executeCommand (execContext=...) at src/mongo/db/service_entry_point_common.cpp:1892
#73 0x0000555556c59cbf in mongo::(anonymous namespace)::<lambda()>::operator() (__closure=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:756
#74 mongo::future_details::call<mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>&> (
func=...) at src/mongo/util/future_impl.h:255
#75 mongo::future_details::throwingCall<mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>&, mongo::future_details::FakeVoid> (func=...) at src/mongo/util/future_impl.h:308
#76 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda(mongo::future_details::FakeVoid&&)>::operator()(mongo::future_details::FakeVoid &&) (val=...,
this=<optimized out>) at src/mongo/util/future_impl.h:917
#77 0x0000555556c59e8a in mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::generalImpl<mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda(mongo::future_details::FakeVoid&&)>, mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda(mongo::Status&&)>, mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda()> > (fail=..., notReady=..., success=..., this=0x7fffe5964110) at src/third_party/boost/boost/optional/detail/optional_aligned_storage.hpp:64
#78 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::then<mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()> > (func=..., this=0x7fffe5964110) at src/mongo/util/future_impl.h:940
#79 mongo::Future<void>::then<mongo::(anonymous namespace)::receivedCommands(std::shared_ptr<mongo::(anonymous namespace)::HandleRequest::ExecutionContext>)::<lambda()> > (
func=..., this=0x7fffe5964110) at src/mongo/util/future.h:405
#80 mongo::(anonymous namespace)::receivedCommands (
execContext=std::shared_ptr<class mongo::(anonymous namespace)::HandleRequest::ExecutionContext> (use count 11, weak count 0) = {...})
at src/mongo/db/service_entry_point_common.cpp:1939
#81 0x0000555556c5b130 in mongo::(anonymous namespace)::CommandOpRunner::run (this=<optimized out>) at /usr/include/c++/9/ext/atomicity.h:96
#82 0x0000555556c54f9f in mongo::ServiceEntryPointCommon::handleRequest (opCtx=opCtx@entry=0x555560af8180, m=...,
behaviors=std::unique_ptr<const class mongo::ServiceEntryPointCommon::Hooks> = {...}) at src/mongo/db/service_entry_point_common.cpp:2441
#83 0x0000555556c41514 in mongo::ServiceEntryPointMongod::handleRequest (this=<optimized out>, opCtx=0x555560af8180, m=...) at /usr/include/c++/9/bits/move.h:74
--Type <RET> for more, q to quit, c to continue without paging--
#84 0x0000555556cabe0a in mongo::transport::ServiceStateMachine::Impl::processMessage (this=0x555560b81090) at src/mongo/transport/service_state_machine.cpp:466
#85 0x0000555556caf176 in mongo::transport::ServiceStateMachine::Impl::<lambda()>::operator() (__closure=<optimized out>) at src/mongo/transport/service_state_machine.cpp:559
#86 mongo::future_details::call<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()>&> (func=...) at src/mongo/util/future_impl.h:255
#87 mongo::future_details::throwingCall<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()>&, mongo::future_details::FakeVoid> (func=...)
at src/mongo/util/future_impl.h:308
#88 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::<lambda(mongo::future_details::FakeVoid&&)>::operator() (this=<optimized out>, val=...)
at src/mongo/util/future_impl.h:917
#89 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::generalImpl<mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda(mongo::future_details::FakeVoid&&)>, mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda(mongo::Status&&)>, mongo::future_details::FutureImpl<T>::then(Func&&) && [with Func = mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()>; T = mongo::future_details::FakeVoid]::<lambda()> > (fail=..., notReady=..., success=..., this=0x7fffe5964780) at src/mongo/util/future_impl.h:1184
#90 mongo::future_details::FutureImpl<mongo::future_details::FakeVoid>::then<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()> > (
func=..., this=0x7fffe5964780) at src/mongo/util/future_impl.h:940
#91 mongo::Future<void>::then<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda()> > (func=..., this=0x7fffe5964780)
at src/mongo/util/future.h:405
#92 mongo::transport::ServiceStateMachine::Impl::startNewLoop (execStatus=..., this=0x555560b81090) at src/mongo/transport/service_state_machine.cpp:559
#93 mongo::transport::ServiceStateMachine::Impl::startNewLoop (this=0x555560b81090, execStatus=...) at src/mongo/transport/service_state_machine.cpp:546
#94 0x0000555556caf8e4 in mongo::transport::ServiceStateMachine::Impl::<lambda(mongo::Status)>::<lambda(mongo::Status)>::<lambda()>::operator() (__closure=<synthetic pointer>,
__closure=<synthetic pointer>) at src/mongo/transport/service_state_machine.cpp:588
#95 mongo::ClientStrand::run<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda(mongo::Status)>::<lambda(mongo::Status)>::<lambda()> > (
task=..., this=<optimized out>) at src/mongo/db/client_strand.h:165
#96 mongo::transport::ServiceStateMachine::Impl::<lambda(mongo::Status)>::<lambda(mongo::Status)>::operator() (__closure=<optimized out>, execStatus=...)
at src/mongo/transport/service_state_machine.cpp:588
#97 mongo::unique_function<void(mongo::Status)>::callRegularVoid<mongo::transport::ServiceStateMachine::Impl::startNewLoop(const mongo::Status&)::<lambda(mongo::Status)>::<lambda(mongo::Status)> > (args#0=..., f=..., isVoid=...) at src/mongo/util/functional.h:145
#98 mongo::unique_function<void(mongo::Status)>::SpecificImpl::call(mongo::Status &&) (this=<optimized out>, args#0=...) at src/mongo/util/functional.h:159
#99 0x00005555592c9065 in mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const (args#0=..., this=<optimized out>) at src/mongo/util/invariant.h:66
#100 mongo::transport::ServiceExecutorSynchronous::<lambda(mongo::Status)>::operator() (status=..., __closure=<optimized out>)
at src/mongo/transport/service_executor_synchronous.cpp:163
#101 mongo::unique_function<void(mongo::Status)>::callRegularVoid<mongo::transport::ServiceExecutorSynchronous::runOnDataAvailable(const SessionHandle&, mongo::OutOfLineExecutor::Task)::<lambda(mongo::Status)> > (args#0=..., f=..., isVoid=...) at src/mongo/util/functional.h:145
#102 mongo::unique_function<void(mongo::Status)>::SpecificImpl::call(mongo::Status &&) (this=<optimized out>, args#0=...) at src/mongo/util/functional.h:159
#103 0x000055555741b9d8 in mongo::unique_function<void (mongo::Status)>::operator()(mongo::Status) const (args#0=..., this=<optimized out>) at src/mongo/util/invariant.h:66
#104 mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}::operator()() (__closure=<optimized out>)
at src/mongo/transport/service_executor.h:111
#105 mongo::unique_function<void ()>::callRegularVoid<mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}>(std::integral_constant<bool, true>, mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}&) (f=..., isVoid=...) at src/mongo/util/functional.h:145
#106 mongo::unique_function<void ()>::makeImpl<mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}>(mongo::transport::ServiceExecutor::schedule(mongo::unique_function<void (mongo::Status)>)::{lambda()#1}&&)::SpecificImpl::call() (this=<optimized out>) at src/mongo/util/functional.h:159
#107 0x00005555592c923f in mongo::unique_function<void ()>::operator()() const (this=<optimized out>) at src/mongo/util/invariant.h:66
#108 mongo::transport::ServiceExecutorSynchronous::<lambda()>::operator() (__closure=0x55556037a1a8) at src/mongo/transport/service_executor_synchronous.cpp:131
#109 mongo::unique_function<void()>::callRegularVoid<mongo::transport::ServiceExecutorSynchronous::scheduleTask(mongo::transport::ServiceExecutor::Task, mongo::transport::ServiceExec--Type <RET> for more, q to quit, c to continue without paging--
utor::ScheduleFlags)::<lambda()> > (f=..., isVoid=...) at src/mongo/util/functional.h:145
#110 mongo::unique_function<void()>::SpecificImpl::call(void) (this=0x55556037a1a0) at src/mongo/util/functional.h:159
#111 0x00005555592cdc28 in mongo::unique_function<void ()>::operator()() const (this=0x555560b58f58) at src/mongo/util/invariant.h:66
#112 mongo::<lambda()>::operator() (__closure=0x555560b58f48) at src/mongo/transport/service_executor_utils.cpp:111
#113 mongo::unique_function<void()>::callRegularVoid<mongo::launchServiceWorkerThread(mongo::unique_function<void()>)::<lambda()> > (f=..., isVoid=...)
at src/mongo/util/functional.h:145
#114 mongo::unique_function<void()>::SpecificImpl::call(void) (this=0x555560b58f40) at src/mongo/util/functional.h:159
#115 0x00005555592cdca1 in mongo::unique_function<void ()>::operator()() const (this=0x55555c01a4b8) at src/mongo/util/invariant.h:66
#116 mongo::(anonymous namespace)::runFunc (ctx=0x55555c01a4b8) at src/mongo/transport/service_executor_utils.cpp:64
#117 0x00007ffff7b8a609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#118 0x00007ffff777f293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

相关阅读