Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ipv6 does not work, reliable crash at start #156

Open
grinapo opened this issue May 31, 2020 · 0 comments
Open

ipv6 does not work, reliable crash at start #156

grinapo opened this issue May 31, 2020 · 0 comments
Labels
bug Something isn't right. libircd Related to the core supporting library (rather than application business-logic, etc).

Comments

@grinapo
Copy link

grinapo commented May 31, 2020

As the $subj said.

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7cfbfda in ircd::rfc1035::record::AAAA::AAAA (this=0x7ffff6781f38, answer=...) at rfc1035.cc:257
257     ircd::rfc1035::record::AAAA::AAAA(const answer &answer)

bt

#0  0x00007ffff7cfbfda in ircd::rfc1035::record::AAAA::AAAA (this=0x7ffff6781f38, answer=...) at rfc1035.cc:257
#1  0x00007ffff7dbefdf in ircd::net::dns::new_record<ircd::rfc1035::record::AAAA> (answer=..., buf=<synthetic pointer>...) at /usr/include/c++/9/new:174
#2  ircd::net::dns::handle_resolved (eptr=..., tag=..., an=...) at net_dns.cc:448
#3  0x00007ffff7dbf24c in std::_Function_handler<void (std::__exception_ptr::exception_ptr, ircd::net::dns::tag const&, ircd::vector_view<ircd::rfc1035::answer const> const&), void (*)(std::__exception_ptr::exception_ptr, ircd::net::dns::tag const&, ircd::vector_view<ircd::rfc1035::answer const> const&)>::_M_invoke(std::_Any_data const&, std::__exception_ptr::exception_ptr&&, ircd::net::dns::tag const&, ircd::vector_view<ircd::rfc1035::answer const> const&) (__functor=..., __args#0=..., __args#1=..., __args#2=...) at /usr/include/c++/9/bits/exception_ptr.h:107
#4  0x00007ffff7dc472f in std::function<void (std::__exception_ptr::exception_ptr, ircd::net::dns::tag const&, ircd::vector_view<ircd::rfc1035::answer const> const&)>::operator()(std::__exception_ptr::exception_ptr, ircd::net::dns::tag const&, ircd::vector_view<ircd::rfc1035::answer const> const&) const (
    __args#2=..., __args#1=..., __args#0=..., this=0x7ffff58acb40) at /usr/include/c++/9/bits/std_function.h:683
#5  ircd::net::dns::resolver::handle_reply (this=this@entry=0x7ffff58acb40, header=..., body=..., tag=...) at net_dns_resolver.cc:723
#6  0x00007ffff7dc757e in ircd::net::dns::resolver::handle_reply (this=this@entry=0x7ffff58acb40, from=..., header=..., body=...) at net_dns_resolver.cc:668
#7  0x00007ffff7dc77f0 in ircd::net::dns::resolver::handle (this=this@entry=0x7ffff58acb40, from=..., buf=...) at net_dns_resolver.cc:577
#8  0x00007ffff7dc8283 in ircd::net::dns::resolver::recv_worker (this=0x7ffff58acb40) at net_dns_resolver.cc:527
#9  0x00007ffff7d286c9 in std::function<void ()>::operator()() const (this=0x7ffff59ee310) at /usr/include/c++/9/bits/std_function.h:683
#10 ircd::ctx::ctx::operator()(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) (this=0x7ffff58acc80, yc=..., func=...) at ctx.cc:142
#11 0x00007ffff7d3ce20 in std::__invoke_impl<void, void (ircd::ctx::ctx::*&)(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept, ircd::ctx::ctx*&, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, std::function<void ()>&>(std::__invoke_memfun_deref, void (ircd::ctx::ctx::*&)(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept, ircd::ctx::ctx*&, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, std::function<void ()>&) (__t=@0x7ffff5ea9028: 0x7ffff58acc80, __f=
    @0x7ffff5ea8ff8: (void (ircd::ctx::ctx::*)(ircd::ctx::ctx * const, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void()>)) 0x7ffff7d28660 <ircd::ctx::ctx::operator()(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>)>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#12 std::__invoke<void (ircd::ctx::ctx::*&)(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept, ircd::ctx::ctx*&, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, std::function<void ()>&>(void (ircd::ctx::ctx::*&)(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept, ircd::ctx::ctx*&, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, std::function<void ()>&) (__fn=
    @0x7ffff5ea8ff8: (void (ircd::ctx::ctx::*)(ircd::ctx::ctx * const, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void()>)) 0x7ffff7d28660 <ircd::ctx::ctx::operator()(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>)>) at /usr/include/c++/9/bits/invoke.h:95
#13 std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept>::__call<void, boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, 0ul, 1ul, 2ul>(std::tuple<boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (__args=..., 
    this=0x7ffff5ea8ff8) at /usr/include/c++/9/functional:400
#14 std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept>::operator()<boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&, void>(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> > > const&) (this=0x7ffff5ea8ff8) at /usr/include/c++/9/functional:484
#15 boost::asio::detail::coro_entry_point<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> >, std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept> >::operator()(boost::coroutines::pull_coroutine<void>&) (this=<optimized out>, ca=...) at /usr/include/boost/asio/impl/spawn.hpp:382
#16 0x00007ffff7d3d120 in boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, boost::asio::detail::coro_entry_point<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> >, std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept> >&, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> >::run() (this=0x7ffff59ee420)
    at /usr/include/boost/coroutine/asymmetric_coroutine.hpp:1410
#17 boost::coroutines::detail::trampoline_push_void<boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, boost::asio::detail::coro_entry_point<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> >, std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept> >&, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> > >(boost::context::detail::transfer_t) (t=...) at /usr/include/boost/coroutine/detail/trampoline_push.hpp:70
#18 0x00007ffff68011ef in make_fcontext () from /usr/lib/x86_64-linux-gnu/libboost_context.so.1.67.0
#19 0x00007ffff7facad0 in vtable for boost::coroutines::detail::push_coroutine_object<boost::coroutines::pull_coroutine<void>, void, boost::asio::detail::coro_entry_point<boost::asio::executor_binder<void (*)(), boost::asio::strand<boost::asio::io_context::executor_type> >, std::_Bind<void (ircd::ctx::ctx::*(ircd::ctx::ctx*, std::_Placeholder<1>, std::function<void ()>))(boost::asio::basic_yield_context<boost::asio::executor_binder<void (*)(), boost::asio::executor> >, std::function<void ()>) noexcept> >&, boost::coroutines::basic_standard_stack_allocator<boost::coroutines::stack_traits> > ()
   from /home/construct/server/lib/libircd.so.3

(gdb) frame 2

#2  ircd::net::dns::handle_resolved (eptr=..., tag=..., an=...) at net_dns.cc:448
448                             record.at(i) = new_record<rfc1035::record::AAAA>(buf, an.at(i));
(gdb) print an
$4 = (const ircd::net::dns::answers &) @0x7ffff59edb90: {_data = 0x7ffff6793500, _stop = 0x7ffff6793630}
(gdb) print tag
$5 = (const ircd::net::dns::tag &) @0x7fffdd139630: {id = 24523, hp = {static verbatim = {<No data fields>}, host = {<std::basic_string_view<char, std::char_traits<char> >> = "matrix.bauer.network", <No data fields>}, service = {<std::basic_string_view<char, std::char_traits<char> >> = "", <No data fields>}, 
    port = 443}, opts = {qtype = 28, srv = {<std::basic_string_view<char, std::char_traits<char> >> = "", <No data fields>}, proto = {<std::basic_string_view<char, std::char_traits<char> >> = "tcp", <No data fields>}, cache_check = true, cache_result = true, nxdomain_exceptions = true, service_port = true}, 
  question = {<ircd::buffer::buffer<char const*>> = {<std::pair<char const*, char const*>> = {first = 0x7fffdd1398d0 "\313_\001", second = 0x7fffdd1398f6 ""}, <No data fields>}, <No data fields>}, last = {__d = {__r = -9223372036854775808}}, tries = 1 '\001', rcode = 0, 
  server = {<std::pair<ircd::net::ipaddr, unsigned short>> = {first = {static v4_min = 281470681743360, static v4_max = 281474976710655, v4 = 1536337886, v6 = 281472218081246, byte = {_M_elems = "ާ\222[\377\377\000\000\000\000\000\000\000\000\000"}}, second = 53}, <No data fields>}, 
  hostbuf = "matrix.bauer.network", '\000' <repeats 235 times>, servicebuf = '\000' <repeats 255 times>, qbuf = "\313_\001\000\000\001\000\000\000\000\000\000\006matrix\005bauer\anetwork\000\000\034\000\001", '\000' <repeats 314 times>...}

(gdb) frame 6

#6  0x00007ffff7dc757e in ircd::net::dns::resolver::handle_reply (this=this@entry=0x7ffff58acb40, from=..., header=..., body=...) at net_dns_resolver.cc:668
668             handle_reply(header, body, tag);
(gdb) print header
$7 = (const ircd::net::dns::resolver::header &) @0x7ffff59eff40: {id = 24523, rd = 1 '\001', tc = 0 '\000', aa = 0 '\000', opcode = 0 '\000', qr = 1 '\001', rcode = 0 '\000', cd = 0 '\000', ad = 0 '\000', unused = 0 '\000', ra = 1 '\001', qdcount = 1, ancount = 1, nscount = 0, arcount = 0}
(gdb) print body
$8 = (const ircd::buffer::const_buffer &) @0x7ffff59ede90: {<ircd::buffer::buffer<char const*>> = {<std::pair<char const*, char const*>> = {first = 0x7ffff59eff4c "\006matrix\005bauer\anetwork", second = 0x7ffff59eff82 "\tsecure-gw\002de"}, <No data fields>}, <No data fields>}
@jevolk jevolk added bug Something isn't right. libircd Related to the core supporting library (rather than application business-logic, etc). labels Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't right. libircd Related to the core supporting library (rather than application business-logic, etc).
Projects
None yet
Development

No branches or pull requests

2 participants