construct
construct copied to clipboard
ipv6 does not work, reliable crash at start
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>}