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)
_______________________________________________
Boost-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://lists.boost.org/mailman3/lists/boost-users.lists.boost.org/
Archived at: https://lists.boost.org/archives/list/[email protected]/message/5SS2CP2WFYWR6ISRCCKRD7YSJMAUGBYB/