Skip to content

segfault in DNS cache on v0.16.9 #682

@slingamn

Description

@slingamn
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x0000704a3cc4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x0000704a3cc288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x000055a5fa1674d8 in do_panic (signum=11) at main.cc:650
#6  <signal handler called>
#7  0x0000704a3d4893fb in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_get_previous_node (__n=0x704a2ca33f90, 
    __bkt=17, this=0x55a6260d6be0) at /usr/include/c++/13/bits/hashtable.h:2070
#8  std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::erase (this=this@entry=0x55a6260d6be0, __it=...)
    at /usr/include/c++/13/bits/hashtable.h:2327
#9  0x0000704a3d4868ad in std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::erase (__it=..., this=0x55a6260d6be0)
    at /usr/include/c++/13/bits/hashtable_policy.h:393
#10 std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<torrent::net::DnsCacheEntry, std::default_delete<torrent::net::DnsCacheEntry> > > > >::erase (__position=..., 
    this=0x55a6260d6be0) at /usr/include/c++/13/bits/unordered_map.h:753
#11 torrent::net::DnsCache::cull_stale_entries (this=this@entry=0x55a6260d6be0) at net/dns_cache.cc:548
#12 0x0000704a3d486982 in torrent::net::DnsCache::resolve (this=this@entry=0x55a6260d6be0, requester=0x55a62770c490, hostname="tracker.openbittorrent.com", family=family@entry=0, callback=...) at net/dns_cache.cc:56
#13 0x0000704a3d41df43 in operator() (__closure=0x704a2cae0a50) at net/resolver.cc:99
#14 std::__invoke_impl<void, torrent::net::Resolver::resolve_both(void*, const std::string&, int, both_callback&&)::<lambda()>&> (__f=...) at /usr/include/c++/13/bits/invoke.h:61
#15 std::__invoke_r<void, torrent::net::Resolver::resolve_both(void*, const std::string&, int, both_callback&&)::<lambda()>&> (__fn=...) at /usr/include/c++/13/bits/invoke.h:111
#16 std::_Function_handler<void(), torrent::net::Resolver::resolve_both(void*, const std::string&, int, both_callback&&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/13/bits/std_function.h:290
#17 0x0000704a3d443fcb in std::function<void()>::operator() (this=0x704a32dfc3d0) at /usr/include/c++/13/bits/std_function.h:591
#18 torrent::utils::Thread::process_callbacks (this=this@entry=0x55a6260d7bd0, only_interrupt=only_interrupt@entry=false) at utils/thread.cc:320
#19 0x0000704a3d490238 in torrent::ThreadNet::call_events (this=0x55a6260d7bd0) at net/thread_net.cc:98
#20 0x0000704a3d443651 in torrent::utils::Thread::process_events (this=this@entry=0x55a6260d7bd0) at utils/thread.cc:280
#21 0x0000704a3d4438f8 in torrent::utils::Thread::event_loop (this=this@entry=0x55a6260d7bd0) at utils/thread.cc:188
#22 0x0000704a3d4439e6 in torrent::utils::Thread::enter_event_loop (thread=0x55a6260d7bd0) at utils/thread.cc:168
#23 0x0000704a3cc9caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#24 0x0000704a3cd29c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions