-
Notifications
You must be signed in to change notification settings - Fork 41
Segmentation fault on PeerManager::Thread_ManagePeers #186
Copy link
Copy link
Closed
Description
Thread 5 "GrinNode" received signal SIGSEGV, Segmentation fault.
#0 0x000055555567f1e8 in std::__atomic_base<bool>::load (__m=std::memory_order_seq_cst, this=<optimized out>) at /usr/include/c++/7/bits/atomic_base.h:396
__b = <optimized out>
__b = <optimized out>
#1 std::atomic<bool>::operator bool (this=<optimized out>) at /usr/include/c++/7/atomic:86
No locals.
#2 Peer::IsDirty (this=<optimized out>) at /home/user/OpenSource/GrinPlusPlus/include/P2P/Peer.h:125
No locals.
#3 PeerManager::Thread_ManagePeers (peerManager=...) at /home/user/OpenSource/GrinPlusPlus/src/P2P/Seed/PeerManager.cpp:67
peerEntry = @0x555562e999f0: {m_peer = {<std::__shared_ptr<Peer, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<Peer, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = 0x0, _M_refcount = {_M_pi = 0x0}}, <No data fields>}, m_lastAttempt = 0}
iter = {_M_node = 0x555562e999a0}
peersToUpdate = {<std::_Vector_base<std::shared_ptr<Peer>, std::allocator<std::shared_ptr<Peer> > >> = {_M_impl = {<std::allocator<std::shared_ptr<Peer> >> = {<__gnu_cxx::new_allocator<std::shared_ptr<Peer> >> = {<No data fields>}, <No data fields>}, _M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}
peersToDelete = {<std::_Vector_base<std::shared_ptr<Peer>, std::allocator<std::shared_ptr<Peer> > >> = {_M_impl = {<std::allocator<std::shared_ptr<Peer> >> = {<__gnu_cxx::new_allocator<std::shared_ptr<Peer> >> = {<No data fields>}, <No data fields>}, _M_start = 0x55556275b850, _M_finish = 0x55556275b8b0,
_M_end_of_storage = 0x55556275b8d0}}, <No data fields>}
minimumContactTime = <optimized out>
__func__ = "Thread_ManagePeers"
#4 0x0000555555680123 in PeerManager::<lambda()>::operator() (__closure=<optimized out>) at /home/user/OpenSource/GrinPlusPlus/src/P2P/Seed/PeerManager.cpp:42
pWriter = {<Reader<PeerManager>> = {_vptr.Reader = 0x5555560b96e0 <vtable for Writer<PeerManager>+16>, m_pReader = {<std::__shared_ptr<Reader<PeerManager>::InnerReader<PeerManager>, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<Reader<PeerManager>::InnerReader<PeerManager>, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>},
_M_ptr = 0x555560f354f0, _M_refcount = {_M_pi = 0x555560f354e0}}, <No data fields>}}, m_pWriter = {<std::__shared_ptr<Writer<PeerManager>::InnerWriter<PeerManager>, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<Writer<PeerManager>::InnerWriter<PeerManager>, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>},
_M_ptr = 0x5555565fea80, _M_refcount = {_M_pi = 0x555560f9a500}}, <No data fields>}}
pLocked = {<std::__shared_ptr<Locked<PeerManager>, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<Locked<PeerManager>, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = <optimized out>, _M_refcount = {_M_pi = 0x5555565db7d0}}, <No data fields>}
pLockedWeak = <optimized out>
pLockedWeak = <optimized out>
pLocked = <optimized out>
pWriter = <optimized out>
#5 std::__invoke_impl<void, PeerManager::Create(const Ptr&, std::shared_ptr<Locked<IPeerDB> >)::<lambda()>&> (__f=...) at /usr/include/c++/7/bits/invoke.h:60
No locals.
#6 std::__invoke<PeerManager::Create(const Ptr&, std::shared_ptr<Locked<IPeerDB> >)::<lambda()>&> (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
No locals.
#7 std::_Bind<PeerManager::Create(const Ptr&, std::shared_ptr<Locked<IPeerDB> >)::<lambda()>()>::__call<void> (__args=..., this=<optimized out>) at /usr/include/c++/7/functional:467
No locals.
#8 std::_Bind<PeerManager::Create(const Ptr&, std::shared_ptr<Locked<IPeerDB> >)::<lambda()>()>::operator()<> (this=<optimized out>) at /usr/include/c++/7/functional:551
No locals.
#9 std::_Function_handler<void(), std::_Bind<PeerManager::Create(const Ptr&, std::shared_ptr<Locked<IPeerDB> >)::<lambda()>()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
No locals.
#10 0x0000555555611d71 in std::function<void ()>::operator()() const (this=<optimized out>) at /usr/include/c++/7/bits/std_function.h:706
No locals.
#11 Bosma::Scheduler::manage_tasks()::{lambda(int)#1}::operator()(int) const (__closure=0x7ffff0001778) at /home/user/OpenSource/GrinPlusPlus/deps/scheduler/include/scheduler/Scheduler.h:211
task = {<std::__shared_ptr<Bosma::Task, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<Bosma::Task, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = 0x555563af3e20, _M_refcount = {_M_pi = 0x555563af3e10}}, <No data fields>}
this = 0x5555565b23f0
task = <optimized out>
this = <optimized out>
#12 std::__invoke_impl<void, Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&, int>(std::__invoke_other, Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&, int&&) (__f=...) at /usr/include/c++/7/bits/invoke.h:60
No locals.
#13 std::__invoke<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&, int>(std::__invoke_result&&, (Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&)...) (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
No locals.
#14 std::__future_base::_Task_state<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}, std::allocator<int>, void (int)>::_M_run(int&&)::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/include/c++/7/future:1421
this = <optimized out>
this = <optimized out>
#15 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}, std::allocator<int>, void (int)>::_M_run(int&&)::{lambda()#1}, void>::operator()() const (this=0x7ffff6345a20) at /usr/include/c++/7/future:1362
No locals.
#16 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}, std::allocator<int>, void (int)>::_M_run(int&&)::{lambda()#1}, void> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/7/bits/std_function.h:302
No locals.
#17 0x0000555555606ab9 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=<optimized out>) at /usr/include/c++/7/bits/std_function.h:706
No locals.
#18 std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (this=0x7ffff0001750, __f=<optimized out>, __did_set=0x7ffff63459e7) at /usr/include/c++/7/future:561
__res = {_M_t = {
_M_t = {<std::_Tuple_impl<0, std::__future_base::_Result_base*, std::__future_base::_Result_base::_Deleter>> = {<std::_Tuple_impl<1, std::__future_base::_Result_base::_Deleter>> = {<std::_Head_base<1, std::__future_base::_Result_base::_Deleter, true>> = {<std::__future_base::_Result_base::_Deleter> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0, std::__future_base::_Result_base*, false>> = {_M_head_impl = 0x0}, <No data fields>}, <No data fields>}}}
#19 0x00007ffff7fac47f in __pthread_once_slow (once_control=0x7ffff0001768, init_routine=0x555555c87700 <__once_proxy>) at pthread_once.c:116
_buffer = {__routine = 0x7ffff7fac4d0 <clear_once_control>, __arg = 0x7ffff0001768, __canceltype = 0, __prev = 0x0}
val = <optimized out>
newval = <optimized out>
#20 0x000055555560e6ad in __gthread_once (__func=<optimized out>, __once=<optimized out>) at /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:699
No locals.
#21 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__once=..., __f=<optimized out>)
at /usr/include/c++/7/mutex:684
__callable = {____f = @0x7ffff6345a10, ____args#0 = @0x7ffff63459e8, ____args#1 = @0x7ffff63459f0, ____args#2 = @0x7ffff63459f8}
__e = <optimized out>
#22 0x000055555560e77e in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (__ignore_failure=false, __res=..., this=<optimized out>) at /usr/include/c++/7/future:401
__did_set = false
__did_set = <optimized out>
#23 std::__future_base::_Task_state<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}, std::allocator<int>, void (int)>::_M_run(int&&) (this=0x7ffff0001750, __args#0=<optimized out>) at /usr/include/c++/7/future:1423
__boundfn = {__this = 0x7ffff0001750, ____args#0 = @0x7ffff6345a74}
#24 0x0000555555606913 in std::packaged_task<void (int)>::operator()(int) (__args#0=<optimized out>, this=<optimized out>) at /usr/include/c++/7/future:1556
No locals.
#25 ctpl::thread_pool::push<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}>(Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&&)::{lambda(int)#1}::operator()(int) const (id=<optimized out>, __closure=<optimized out>) at /home/user/OpenSource/GrinPlusPlus/deps/scheduler/include/scheduler/ctpl_stl.h:192
pck = <optimized out>
pck = <optimized out>
#26 std::_Function_handler<void (int), ctpl::thread_pool::push<Bosma::Scheduler::manage_tasks()::{lambda(int)#1}>(Bosma::Scheduler::manage_tasks()::{lambda(int)#1}&&)::{lambda(int)#1}>::_M_invoke(std::_Any_data const&, int&&) (__functor=..., __args#0=<optimized out>) at /usr/include/c++/7/bits/std_function.h:316
No locals.
#27 0x000055555561039f in std::function<void (int)>::operator()(int) const (__args#0=<optimized out>, this=0x7ffff0001600) at /usr/include/c++/7/bits/std_function.h:706
No locals.
#28 ctpl::thread_pool::set_thread(int)::{lambda()#1}::operator()() const (__closure=0x5555565b1728) at /home/user/OpenSource/GrinPlusPlus/deps/scheduler/include/scheduler/ctpl_stl.h:218
func = <optimized out>
lock = {_M_device = 0x5555565b2568, _M_owns = true}
_flag = <optimized out>
_f = <optimized out>
isPop = <optimized out>
flag = {<std::__shared_ptr<std::atomic<bool>, (__gnu_cxx::_Lock_policy)2>> = {<std::__shared_ptr_access<std::atomic<bool>, (__gnu_cxx::_Lock_policy)2, false, false>> = {<No data fields>}, _M_ptr = 0x5555565b0540, _M_refcount = {_M_pi = 0x5555565b0530}}, <No data fields>}
i = 1
this = 0x5555565b24b8
flag = <optimized out>
i = <optimized out>
this = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
_flag = <optimized out>
_f = <optimized out>
isPop = <optimized out>
lock = <optimized out>
func = <optimized out>
#29 std::__invoke_impl<void, ctpl::thread_pool::set_thread(int)::{lambda()#1}>(std::__invoke_other, ctpl::thread_pool::set_thread(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/7/bits/invoke.h:60
No locals.
#30 std::__invoke<ctpl::thread_pool::set_thread(int)::{lambda()#1}>(std::__invoke_result&&, (ctpl::thread_pool::set_thread(int)::{lambda()#1}&&)...) (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
No locals.
#31 std::thread::_Invoker<std::tuple<ctpl::thread_pool::set_thread(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x5555565b1728) at /usr/include/c++/7/thread:234
No locals.
#32 std::thread::_Invoker<std::tuple<ctpl::thread_pool::set_thread(int)::{lambda()#1}> >::operator()() (this=0x5555565b1728) at /usr/include/c++/7/thread:243
No locals.
#33 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ctpl::thread_pool::set_thread(int)::{lambda()#1}> > >::_M_run() (this=0x5555565b1720) at /usr/include/c++/7/thread:186
No locals.
#34 0x0000555555cbbdef in execute_native_thread_routine ()
No symbol table info available.
#35 0x00007ffff7fa3609 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737324017408, 2003156278471480154, 140737488347230, 140737488347231, 140737488347232, 140737324014592, -2003177775969414310, -2003173907359542438}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#36 0x00007ffff7d72293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels