Basically, I'm writing a Boost.Beast webserver Stack trace follows: (gdb) f 0 #0 0x000000000041f6cain boost::asio::detail::op_queue_access::next<boost::asio::detail::scheduler_operation, boost::asio::detail::scheduler_o peration>(o1=@0x7f7fff7ad2a0: 0x2540be400, o2=0x75c5a8ed0bb0) at /usr/pkg/include/boost/asio/detail/op_queue.hpp:41 41 o1->next_ = o2; (gdb) bt #0 0x000000000041f6cain boost::asio::detail::op_queue_access::next<boost::asio::detail::scheduler_operation, boost::asio::detail::scheduler_o peration>(o1=@0x7f7fff7ad2a0: 0x2540be400, o2=0x75c5a8ed0bb0) at /usr/pkg/include/boost/asio/detail/op_queue.hpp:41 #1 0x000000000041d8bdin boost::asio::detail::op_queue<boost::asio::detail::scheduler_operation>::push(this=0x7f7fff7ad298, h=0x75c5a8ed0bb0) at /usr/pkg/include/boost/asio/detail/op_queue.hpp:110 #2 0x00000000004261c3in boost::asio::detail::scheduler::post_immediate_completion(this=0x7f7fff7ad1b8, op=0x75c5a8ed0bb0, is_continuation=false) at /usr/pkg/include/boost/asio/detail/impl/scheduler.ipp:363 #3 0x00000000004323d9in boost::asio::io_context::basic_executor_type<std::allocator<void>, 0ul>::execute<boost::asio::detail::executor_functi on>(this=0x7f7fff7ac5e0, f=...) at /usr/pkg/include/boost/asio/impl/io_context.hpp:215 #4 0x00000000004308eein boost::asio::execution::detail::any_executor_base::execute_ex<boost::asio::io_context::basic_executor_type<std::alloc ator<void>, 0ul> >(ex=..., f=...) at /usr/pkg/include/boost/asio/execution/any_executor.hpp:900 #5 0x0000000000433ecain boost::asio::execution::detail::any_executor_base::execute<boost::asio::detail::binder0<boost::asio::detail::spawned_ thread_resumer> >(this=0x7f7fff7ac5e0, f=...) at /usr/pkg/include/boost/asio/execution/any_executor.hpp:681 #6 0x0000000000432f99in boost::asio::detail::initiate_dispatch_with_executor<boost::asio::any_io_executor>::operator()<boost::asio::detail::s pawned_thread_resumer>(boost::asio::detail::spawned_thread_resumer&&, std::enable_if<boost::asio::execution::is_executor<std::conditional<true, boost::asio::any_io_executor, boost::asio::detail::spawned_thread_resumer>::type>::value, void>::type*, std::enable_if<!boost::asio::detail::i s_work_dispatcher_required<std::decay<boost::asio::detail::spawned_thread_resumer>::type, boost::asio::any_io_executor, void>::value, void>::ty pe*) const(this=0x7f7fff7ac5e0, handler=...) at /usr/pkg/include/boost/asio/detail/initiate_dispatch.hpp:106 #7 0x00000000004315a4in boost::asio::detail::completion_handler_async_result<boost::asio::detail::spawned_thread_resumer, void ()>::initiate< boost::asio::detail::initiate_dispatch_with_executor<boost::asio::any_io_executor>, boost::asio::detail::spawned_thread_resumer>(boost::asio::d etail::initiate_dispatch_with_executor<boost::asio::any_io_executor>&&, boost::asio::detail::spawned_thread_resumer&&)(initiation=..., token=...) at /usr/pkg/include/boost/asio/async_result.hpp:329 #8 0x000000000042fa2cin boost::asio::async_initiate<boost::asio::detail::spawned_thread_resumer, void (), boost::asio::detail::initiate_dispa tch_with_executor<boost::asio::any_io_executor>>(boost::asio::detail::initiate_dispatch_with_executor<boost::asio::any_io_executor>&&, boost::a sio::type_identity<boost::asio::detail::spawned_thread_resumer>::type&)(initiation=..., token=...) at /usr/pkg/include/boost/asio/async_result.hpp:629 #9 0x000000000042e5c6in boost::asio::dispatch<boost::asio::any_io_executor, boost::asio::detail::spawned_thread_resumer>(boost::asio::any_io_ executor const&, boost::asio::detail::spawned_thread_resumer&&, boost::asio::constraint<boost::asio::execution::is_executor<boost::asio::any_io _executor>::value||boost::asio::is_executor<boost::asio::any_io_executor>::value, int>::type)(ex=..., token=...) at /usr/pkg/include/boost/asio/dispatch.hpp:156 #10 0x000000000040b11ein boost::asio::detail::initiate_spawn<boost::asio::any_io_executor>::operator()<acceptor::spawn()::<lambda(std::__excep tion_ptr::exception_ptr)>, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholder<1>))(boost::asio::basic_yield_context<boost::asio::any_io_ executor>)> >(struct {...} &&, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholder<1>))(boost::asio::basic_yield_context<boost::asio::any _io_executor>)> &&) const(this=0x7f7fff7ac7c0, handler=..., f=...) at /usr/pkg/include/boost/asio/impl/spawn.hpp:917 #11 0x000000000040af52in boost::asio::detail::completion_handler_async_result<acceptor::spawn()::<lambda(std::__exception_ptr::exception_ptr)> , void(std::__exception_ptr::exception_ptr)>::initiate<boost::asio::detail::initiate_spawn<boost::asio::any_io_executor>, acceptor::spawn()::<l ambda(std::__exception_ptr::exception_ptr)>, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholder<1>))(boost::asio::basic_yield_context<bo ost::asio::any_io_executor>)>
(boost::asio::detail::initiate_spawn<boost::asio::any_io_executor> &&, struct {...} &&)(initiation=..., token=...) at /usr/pkg/include/boost/asio/async_result.hpp:329 #12 0x000000000040aef0in boost::asio::async_initiate<acceptor::spawn()::<lambda(std::__exception_ptr::exception_ptr)>, void(std::__exception_p tr::exception_ptr), boost::asio::detail::initiate_spawn<boost::asio::any_io_executor>, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholde r<1>))(boost::asio::basic_yield_context<boost::asio::any_io_executor>)> (boost::asio::detail::initiate_spawn<boost::asio::any_io_executor> &&, --Type <RET> for more, q to quit, c to continue without paging-- boost::asio::type_identity_t &)(initiation=..., token=...) at /usr/pkg/include/boost/asio/async_result.hpp:629 #13 0x000000000040ae25in boost::asio::spawn<boost::asio::any_io_executor, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholder<1>))(boost ::asio::basic_yield_context<boost::asio::any_io_executor>)>, acceptor::spawn()::<lambda(std::__exception_ptr::exception_ptr)> >(const boost::as io::any_io_executor &, std::_Bind<void (acceptor::*(acceptor*, std::_Placeholder<1>))(boost::asio::basic_yield_context<boost::asio::any_io_exec utor>)> &&, struct {...} &&, boost::asio::constraint_t)(ex=..., function=..., token=...) at /usr/pkg/include/boost/asio/impl/spawn.hpp:986 #14 0x000000000040a919in acceptor::spawn(this=0x7f7fff7ac8b0) at acceptor.c++:44 #15 0x00000000004098e2in run(ep=..., threads=4) at werewolf.c++:11 #16 0x0000000039373336in ??() #17 0x00007f7fff7ad2b8in ??() #18 0x00007f7fff7ad1f8in ??() #19 0x0000000000000007in ??() #20 0x00746c7561666564in ??() #21 0x0000000000000000in ??()
In short, I've refactored stackful coroutine Beast example, and added a Redis database First issue I've encountered was DB calls freezing and cancelled, and after I moved redis::config initialization to db_conn::db_conn() (irrelevant change), the program started crashing at the very start. My OS is NetBSD Thanks for help, and have a good time! :) -- movepoind5y4ervjglu2wq2jztftbxfztv5r243k2gtcnxrmaxjw2yqd.onion Anek Green (Movepoint Solutions)