Skip to content

Instantly share code, notes, and snippets.

@LarryRuane
Created May 24, 2023 16:31
Show Gist options
  • Save LarryRuane/8772f6cce117c1b71845e8c6e1926536 to your computer and use it in GitHub Desktop.
Save LarryRuane/8772f6cce117c1b71845e8c6e1926536 to your computer and use it in GitHub Desktop.
gdb backtrace (bt, stack trace) of prevector dynamically allocating memory during -reindex-chainstate, master commit 3a93957a5dc97cb2fd0656d1e2451ebef57204df
prevector<28u, unsigned char, unsigned int, int>::change_capacity (this=0x555561065eb8, new_capacity=67) at ./prevector.h:191
prevector<28u, unsigned char, unsigned int, int>::resize_uninitialized (this=0x555561065eb8, new_size=67) at ./prevector.h:392
Unserialize_impl<CAutoFile, 28u, unsigned char> (is=..., v=...) at ./serialize.h:782
Unserialize<CAutoFile, 28u, unsigned char> (is=..., v=...) at ./serialize.h:797
UnserializeMany<CAutoFile, prevector<28u, unsigned char, unsigned int, int>&> (s=..., arg=...) at ./serialize.h:1059
SerReadWriteMany<CAutoFile, prevector<28u, unsigned char, unsigned int, int>&> (s=..., ser_action=...) at ./serialize.h:1072
CScript::SerializationOps<CAutoFile, CScript, CSerActionUnserialize> (obj=..., s=..., ser_action=...) at ./script/script.h:435
CScript::Unser<CAutoFile> (s=..., obj=...) at ./script/script.h:435
CScript::Unserialize<CAutoFile> (this=0x555561065eb8, s=...) at ./script/script.h:435
Unserialize<CAutoFile, CScript&> (is=..., a=...) at ./serialize.h:705
UnserializeMany<CAutoFile, CScript&> (s=..., arg=...) at ./serialize.h:1059
UnserializeMany<CAutoFile, long&, CScript&> (s=..., arg=@0x555561065eb0: 5000000000) at ./serialize.h:1060
SerReadWriteMany<CAutoFile, long&, CScript&> (s=..., ser_action=...) at ./serialize.h:1072
CTxOut::SerializationOps<CAutoFile, CTxOut, CSerActionUnserialize> (obj=..., s=..., ser_action=...) at ./primitives/transaction.h:170
CTxOut::Unser<CAutoFile> (s=..., obj=...) at ./primitives/transaction.h:170
CTxOut::Unserialize<CAutoFile> (this=0x555561065eb0, s=...) at ./primitives/transaction.h:170
Unserialize<CAutoFile, CTxOut&> (is=..., a=...) at ./serialize.h:705
DefaultFormatter::Unser<CAutoFile, CTxOut> (s=..., t=...) at ./serialize.h:719
VectorFormatter<DefaultFormatter>::Unser<CAutoFile, std::vector<CTxOut, std::allocator<CTxOut> > > (this=0x7fff881fd017, s=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:622
Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CTxOut, std::allocator<CTxOut> >&>::Unserialize<CAutoFile> (this=0x7fff881fd080, s=...) at ./serialize.h:419
Unserialize<CAutoFile, Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CTxOut, std::allocator<CTxOut> >&> > (is=..., a=...) at ./serialize.h:705
Unserialize_impl<CAutoFile, CTxOut, std::allocator<CTxOut>, CTxOut> (is=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:857
Unserialize<CAutoFile, CTxOut, std::allocator<CTxOut> > (is=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:863
CAutoFile::operator>><std::vector<CTxOut, std::allocator<CTxOut> >&> (this=0x7fff881fd910, obj=std::vector of length 1, capacity 1 = {...}) at ./streams.h:605
UnserializeTransaction<CAutoFile, CMutableTransaction> (tx=..., s=...) at ./primitives/transaction.h:235
CMutableTransaction::Unserialize<CAutoFile> (this=0x7fff881fd250, s=...) at ./primitives/transaction.h:397
CMutableTransaction::CMutableTransaction<CAutoFile> (this=0x7fff881fd250, s=...) at ./primitives/transaction.h:402
CTransaction::CTransaction<CAutoFile> (this=0x7fff80008b90, s=...) at ./primitives/transaction.h:331
__gnu_cxx::new_allocator<CTransaction>::construct<CTransaction const, deserialize_type const&, CAutoFile&> (this=0x7fff881fd3ef, __p=0x7fff80008b90) at /usr/include/c++/11/ext/new_allocator.h:162
std::allocator_traits<std::allocator<CTransaction> >::construct<CTransaction const, deserialize_type const&, CAutoFile&> (__a=..., __p=0x7fff80008b90) at /usr/include/c++/11/bits/alloc_traits.h:516
std::_Sp_counted_ptr_inplace<CTransaction const, std::allocator<CTransaction>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<deserialize_type const&, CAutoFile&> (this=0x7fff80008b80, __a=...) at /usr/include/c++/11/bits/shared_ptr_base.h:519
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<CTransaction const, std::allocator<CTransaction>, deserialize_type const&, CAutoFile&> (this=0x7fff881fd5b8, __p=@0x7fff881fd5b0: 0x0, __a=...) at /usr/include/c++/11/bits/shared_ptr_base.h:650
std::__shared_ptr<CTransaction const, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<CTransaction>, deserialize_type const&, CAutoFile&> (this=0x7fff881fd5b0, __tag=...) at /usr/include/c++/11/bits/shared_ptr_base.h:1342
std::shared_ptr<CTransaction const>::shared_ptr<std::allocator<CTransaction>, deserialize_type const&, CAutoFile&> (this=0x7fff881fd5b0, __tag=...) at /usr/include/c++/11/bits/shared_ptr.h:409
std::allocate_shared<CTransaction const, std::allocator<CTransaction>, deserialize_type const&, CAutoFile&> (__a=...) at /usr/include/c++/11/bits/shared_ptr.h:863
std::make_shared<CTransaction const, deserialize_type const&, CAutoFile&> () at /usr/include/c++/11/bits/shared_ptr.h:879
Unserialize<CAutoFile, CTransaction> (is=..., p=std::shared_ptr<const CTransaction> (empty) = {...}) at ./serialize.h:970
DefaultFormatter::Unser<CAutoFile, std::shared_ptr<CTransaction const> > (s=..., t=std::shared_ptr<const CTransaction> (empty) = {...}) at ./serialize.h:719
VectorFormatter<DefaultFormatter>::Unser<CAutoFile, std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > > > (this=0x7fff881fd677, s=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:622
Wrapper<VectorFormatter<DefaultFormatter>, std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > >&>::Unserialize<CAutoFile> (this=0x7fff881fd6e0, s=...) at ./serialize.h:419
Unserialize<CAutoFile, Wrapper<VectorFormatter<DefaultFormatter>, std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > >&> > (is=..., a=...) at ./serialize.h:705
Unserialize_impl<CAutoFile, std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> >, std::shared_ptr<CTransaction const> > (is=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:857
Unserialize<CAutoFile, std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > > (is=..., v=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:863
UnserializeMany<CAutoFile, std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > >&> (s=..., arg=std::vector of length 1, capacity 1 = {...}) at ./serialize.h:1059
SerReadWriteMany<CAutoFile, std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > >&> (s=..., ser_action=...) at ./serialize.h:1072
CBlock::SerializationOps<CAutoFile, CBlock, CSerActionUnserialize> (obj=..., s=..., ser_action=...) at ./primitives/block.h:91
CBlock::Unser<CAutoFile> (s=..., obj=...) at ./primitives/block.h:88
CBlock::Unserialize<CAutoFile> (this=0x7fff800079e0, s=...) at ./primitives/block.h:88
Unserialize<CAutoFile, CBlock&> (is=..., a=...) at ./serialize.h:705
CAutoFile::operator>><CBlock&> (this=0x7fff881fd910, obj=...) at ./streams.h:605
node::ReadBlockFromDisk (block=..., pos=..., consensusParams=...) at node/blockstorage.cpp:753
node::ReadBlockFromDisk (block=..., pindex=0x55555c03c198, consensusParams=...) at node/blockstorage.cpp:775
Chainstate::ConnectTip (this=0x555556488f70, state=..., pindexNew=0x55555c03c198, pblock=std::shared_ptr<const CBlock> (empty) = {...}, connectTrace=..., disconnectpool=...) at ./src/validation.cpp:2818
Chainstate::ActivateBestChainStep (this=0x555556488f70, state=..., pindexMostWork=0x55555f801038, pblock=std::shared_ptr<const CBlock> (empty) = {...}, fInvalidFound=@0x7fff881fe238: false, connectTrace=...) at ./src/validation.cpp:3028
Chainstate::ActivateBestChain (this=0x555556488f70, state=..., pblock=std::shared_ptr<const CBlock> (empty) = {...}) at ./src/validation.cpp:3163
node::ThreadImport (chainman=..., vImportFiles=std::vector of length 0, capacity 0, args=..., mempool_path=...) at node/blockstorage.cpp:923
operator() (__closure=0x7fff80000b70) at ./src/init.cpp:1670
std::__invoke_impl<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
std::__invoke_r<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
std::_Function_handler<void(), AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
std::function<void ()>::operator()() const (this=0x7fff881fea80) at /usr/include/c++/11/bits/std_function.h:590
util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name=\"loadblk\", thread_func=...) at util/thread.cpp:21
std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x555561066738: 0x555555e2912b <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:61
std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x555561066738: 0x555555e2912b <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x555561066708) at /usr/include/c++/11/bits/std_thread.h:253
std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > >::operator()(void) (this=0x555561066708) at /usr/include/c++/11/bits/std_thread.h:260
std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > > >::_M_run(void) (this=0x555561066700) at /usr/include/c++/11/bits/std_thread.h:211
?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment