Note that there are some explanatory texts on larger screens.

plurals
  1. POIs there a bug in the boost asio HTTP Server 3 example or boost bug?
    primarykey
    data
    text
    <p>boost library version 1.53<br> Debian Linux 6.0 ( Linux 2.6.32-5-amd64 on x86_64 )</p> <p>It is hard to test own software when valgrind log contains lots of warnings.<br> So with no changes I built the HTTP server3 example and run it under the Valgrind.<br> Take a look, please. Did I miss something?</p> <p>valgrind --tool=helgrind --log-file=valgrind.log ./server3 0.0.0.0 83 5 /root/server3<br> Here is the Helgrind log (edited to 30000 body characters limit, full log <a href="http://pastebin.com/Vkbr9vsA" rel="nofollow">http://pastebin.com/Vkbr9vsA</a>):</p> <pre><code>Helgrind, a thread error detector Copyright (C) 2007-2012, and GNU GPL'd, by OpenWorks LLP et al. Using Valgrind-3.9.0.SVN and LibVEX; rerun with -h for copyright info Command: ./server3 0.0.0.0 83 5 /root/server3 Parent PID: 8662 Lock at 0x524F5E0 was first observed at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x5043388: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) by 0x5CE5A7C: clone (clone.S:112) Possible data race during read of size 8 at 0x524F4E8 by thread #3 Locks held: none at 0x5043356: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) by 0x5CE5A7C: clone (clone.S:112) This conflicts with a previous write of size 8 by thread #2 Locks held: 1, at address 0x524F5E0 at 0x5043416: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) by 0x5CE5A7C: clone (clone.S:112) ---------------------------------------------------------------- Possible data race during read of size 4 at 0x524F60C by thread #3 Locks held: none at 0x50496D4: boost::detail::get_once_per_thread_epoch() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043361: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) by 0x5CE5A7C: clone (clone.S:112) This conflicts with a previous write of size 4 by thread #2 Locks held: none at 0x525C27B: pthread_key_create (pthread_key_create.c:44) by 0x525C82F: pthread_once (pthread_once.S:104) by 0x50496D3: boost::detail::get_once_per_thread_epoch() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043361: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) ---------------------------------------------------------------- Possible data race during read of size 8 at 0x524F4E8 by thread #1 Locks held: 1, at address 0x61A1E20 at 0x5043356: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043478: boost::detail::get_current_thread_data() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5047875: boost::detail::interruption_checker::interruption_checker(pthread_mutex_t*, pthread_cond_t*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x5044002: boost::thread::join_noexcept() (in /usr/lib/libboost_thread.so.1.53.0) by 0x42660E: boost::thread::join() (thread.hpp:751) by 0x4215C5: http::server3::server::run() (server.cpp:63) by 0x41A65B: main (main.cpp:37) ---------------------------------------------------------------- Possible data race during read of size 4 at 0x524F60C by thread #1 Locks held: 1, at address 0x61A1E20 at 0x50496D4: boost::detail::get_once_per_thread_epoch() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043361: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043478: boost::detail::get_current_thread_data() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5047875: boost::detail::interruption_checker::interruption_checker(pthread_mutex_t*, pthread_cond_t*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x5044002: boost::thread::join_noexcept() (in /usr/lib/libboost_thread.so.1.53.0) by 0x42660E: boost::thread::join() (thread.hpp:751) by 0x4215C5: http::server3::server::run() (server.cpp:63) by 0x41A65B: main (main.cpp:37) This conflicts with a previous write of size 4 by thread #2 Locks held: none at 0x525C27B: pthread_key_create (pthread_key_create.c:44) by 0x525C82F: pthread_once (pthread_once.S:104) by 0x50496D3: boost::detail::get_once_per_thread_epoch() (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043361: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x5043498: boost::detail::set_current_thread_data(boost::detail::thread_data_base*) (in /usr/lib/libboost_thread.so.1.53.0) by 0x504380E: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) ---------------------------------------------------------------- Possible data race during write of size 4 at 0x61A36B8 by thread #6 Locks held: none at 0x4223B0: boost::asio::detail::epoll_reactor::descriptor_state::set_ready_events(unsigned int) (epoll_reactor.hpp:68) by 0x4228A5: boost::asio::detail::epoll_reactor::run(bool, boost::asio::detail::op_queue&lt;boost::asio::detail::task_io_service_operation&gt;&amp;) (epoll_reactor.ipp:430) by 0x423629: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:396) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) by 0x42EB34: boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;::operator()(boost::asio::io_service*) const (mem_fn_template.hpp:49) by 0x42EA72: unsigned long boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt;::operator()&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list0&gt;(boost::_bi::type&lt;unsigned long&gt;, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;&amp;, boost::_bi::list0&amp;, long) (bind.hpp:243) by 0x42E91E: boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt;::operator()() (bind_template.hpp:20) by 0x42E65D: boost::detail::thread_data&lt;boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt; &gt;::run() (thread.hpp:117) by 0x5043818: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) by 0x5256B4F: start_thread (pthread_create.c:304) Address 0x61A36B8 is 24 bytes inside a block of size 160 alloc'd at 0x4C28A3A: operator new(unsigned long) (vg_replace_malloc.c:298) by 0x42806A: boost::asio::detail::epoll_reactor::descriptor_state* boost::asio::detail::object_pool_access::create&lt;boost::asio::detail::epoll_reactor::descriptor_state&gt;() (object_pool.hpp:35) by 0x4267B8: boost::asio::detail::object_pool&lt;boost::asio::detail::epoll_reactor::descriptor_state&gt;::alloc() (object_pool.hpp:89) by 0x4229E3: boost::asio::detail::epoll_reactor::allocate_descriptor_state() (epoll_reactor.ipp:512) by 0x4223D4: boost::asio::detail::epoll_reactor::register_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&amp;) (epoll_reactor.ipp:151) by 0x424405: boost::asio::detail::reactive_socket_service_base::do_assign(boost::asio::detail::reactive_socket_service_base::base_implementation_type&amp;, int, int const&amp;, boost::system::error_code&amp;) (reactive_socket_service_base.ipp:182) by 0x42DA98: boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::assign(boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::implementation_type&amp;, boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (reactive_socket_service.hpp:117) by 0x42D75C: boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt;::assign(boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::implementation_type&amp;, boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (stream_socket_service.hpp:138) by 0x42D263: boost::asio::basic_socket&lt;boost::asio::ip::tcp, boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt; &gt;::assign(boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (basic_socket.hpp:285) by 0x42CAD7: boost::asio::detail::reactive_socket_accept_op_base&lt;boost::asio::basic_socket&lt;boost::asio::ip::tcp, boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt; &gt;, boost::asio::ip::tcp&gt;::do_perform(boost::asio::detail::reactor_op*) (reactive_socket_accept_op.hpp:66) by 0x409DE0: boost::asio::detail::reactor_op::perform() (reactor_op.hpp:40) by 0x422C2F: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:622) ---------------------------------------------------------------- Possible data race during write of size 8 at 0x61A36A8 by thread #6 Locks held: none at 0x410E9E: void boost::asio::detail::op_queue_access::next&lt;boost::asio::detail::task_io_service_operation, boost::asio::detail::task_io_service_operation&gt;(boost::asio::detail::task_io_service_operation*&amp;, boost::asio::detail::task_io_service_operation*) (op_queue.hpp:41) by 0x40EBEE: boost::asio::detail::op_queue&lt;boost::asio::detail::task_io_service_operation&gt;::push(boost::asio::detail::task_io_service_operation*) (op_queue.hpp:107) by 0x4228BB: boost::asio::detail::epoll_reactor::run(bool, boost::asio::detail::op_queue&lt;boost::asio::detail::task_io_service_operation&gt;&amp;) (epoll_reactor.ipp:431) by 0x423629: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:396) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) by 0x42EB34: boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;::operator()(boost::asio::io_service*) const (mem_fn_template.hpp:49) by 0x42EA72: unsigned long boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt;::operator()&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list0&gt;(boost::_bi::type&lt;unsigned long&gt;, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;&amp;, boost::_bi::list0&amp;, long) (bind.hpp:243) by 0x42E91E: boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt;::operator()() (bind_template.hpp:20) by 0x42E65D: boost::detail::thread_data&lt;boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt; &gt;::run() (thread.hpp:117) by 0x5043818: ??? (in /usr/lib/libboost_thread.so.1.53.0) by 0x4C2D6FE: mythread_wrapper (hg_intercepts.c:219) Address 0x61A36A8 is 8 bytes inside a block of size 160 alloc'd at 0x4C28A3A: operator new(unsigned long) (vg_replace_malloc.c:298) by 0x42806A: boost::asio::detail::epoll_reactor::descriptor_state* boost::asio::detail::object_pool_access::create&lt;boost::asio::detail::epoll_reactor::descriptor_state&gt;() (object_pool.hpp:35) by 0x4267B8: boost::asio::detail::object_pool&lt;boost::asio::detail::epoll_reactor::descriptor_state&gt;::alloc() (object_pool.hpp:89) by 0x4229E3: boost::asio::detail::epoll_reactor::allocate_descriptor_state() (epoll_reactor.ipp:512) by 0x4223D4: boost::asio::detail::epoll_reactor::register_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&amp;) (epoll_reactor.ipp:151) by 0x424405: boost::asio::detail::reactive_socket_service_base::do_assign(boost::asio::detail::reactive_socket_service_base::base_implementation_type&amp;, int, int const&amp;, boost::system::error_code&amp;) (reactive_socket_service_base.ipp:182) by 0x42DA98: boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::assign(boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::implementation_type&amp;, boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (reactive_socket_service.hpp:117) by 0x42D75C: boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt;::assign(boost::asio::detail::reactive_socket_service&lt;boost::asio::ip::tcp&gt;::implementation_type&amp;, boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (stream_socket_service.hpp:138) by 0x42D263: boost::asio::basic_socket&lt;boost::asio::ip::tcp, boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt; &gt;::assign(boost::asio::ip::tcp const&amp;, int const&amp;, boost::system::error_code&amp;) (basic_socket.hpp:285) by 0x42CAD7: boost::asio::detail::reactive_socket_accept_op_base&lt;boost::asio::basic_socket&lt;boost::asio::ip::tcp, boost::asio::stream_socket_service&lt;boost::asio::ip::tcp&gt; &gt;, boost::asio::ip::tcp&gt;::do_perform(boost::asio::detail::reactor_op*) (reactive_socket_accept_op.hpp:66) by 0x409DE0: boost::asio::detail::reactor_op::perform() (reactor_op.hpp:40) by 0x422C2F: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:622) ---------------------------------------------------------------- Thread #2: lock order "0x64C720 before 0x619E550" violated Observed (incorrect) order is: acquisition of lock at 0x619E550 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408545: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) by 0x40D9E1: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;::scoped_lock(boost::asio::detail::posix_mutex&amp;) (scoped_lock.hpp:36) by 0x422BD3: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:611) by 0x422D38: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&amp;, unsigned long) (epoll_reactor.ipp:648) by 0x409C69: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&amp;, boost::system::error_code const&amp;, unsigned long) (task_io_service_operation.hpp:37) by 0x4236AD: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:412) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) by 0x42EB34: boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;::operator()(boost::asio::io_service*) const (mem_fn_template.hpp:49) by 0x42EA72: unsigned long boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt;::operator()&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list0&gt;(boost::_bi::type&lt;unsigned long&gt;, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;&amp;, boost::_bi::list0&amp;, long) (bind.hpp:243) by 0x42E91E: boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt;::operator()() (bind_template.hpp:20) followed by a later acquisition of lock at 0x64C720 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408845: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) by 0x40E523: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_static_mutex&gt;::scoped_lock(boost::asio::detail::posix_static_mutex&amp;) (scoped_lock.hpp:36) by 0x424EE7: boost::asio::detail::signal_set_service::deliver_signal(int) (signal_set_service.ipp:431) by 0x42477C: boost::asio::detail::signal_set_service::pipe_read_op::do_perform(boost::asio::detail::reactor_op*) (signal_set_service.ipp:95) by 0x409DE0: boost::asio::detail::reactor_op::perform() (reactor_op.hpp:40) by 0x422C2F: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:622) by 0x422D38: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&amp;, unsigned long) (epoll_reactor.ipp:648) by 0x409C69: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&amp;, boost::system::error_code const&amp;, unsigned long) (task_io_service_operation.hpp:37) by 0x4236AD: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:412) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) Required order was established by acquisition of lock at 0x64C720 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408845: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) by 0x40E523: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_static_mutex&gt;::scoped_lock(boost::asio::detail::posix_static_mutex&amp;) (scoped_lock.hpp:36) by 0x425060: boost::asio::detail::signal_set_service::add_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:467) by 0x4248BB: boost::asio::detail::signal_set_service::signal_set_service(boost::asio::io_service&amp;) (signal_set_service.ipp:128) by 0x42558B: boost::asio::signal_set_service::signal_set_service(boost::asio::io_service&amp;) (signal_set_service.hpp:53) by 0x42B628: boost::asio::io_service::service* boost::asio::detail::service_registry::create&lt;boost::asio::signal_set_service&gt;(boost::asio::io_service&amp;) (service_registry.hpp:81) by 0x408742: boost::asio::detail::service_registry::do_use_service(boost::asio::io_service::service::key const&amp;, boost::asio::io_service::service* (*)(boost::asio::io_service&amp;)) (service_registry.ipp:123) by 0x42A92F: boost::asio::signal_set_service&amp; boost::asio::detail::service_registry::use_service&lt;boost::asio::signal_set_service&gt;() (service_registry.hpp:48) by 0x42984A: boost::asio::signal_set_service&amp; boost::asio::use_service&lt;boost::asio::signal_set_service&gt;(boost::asio::io_service&amp;) (io_service.hpp:33) by 0x428633: boost::asio::basic_io_object&lt;boost::asio::signal_set_service, false&gt;::basic_io_object(boost::asio::io_service&amp;) (basic_io_object.hpp:90) by 0x42753A: boost::asio::basic_signal_set&lt;boost::asio::signal_set_service&gt;::basic_signal_set(boost::asio::io_service&amp;) (basic_signal_set.hpp:106) followed by a later acquisition of lock at 0x619E550 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408545: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) by 0x40D9E1: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;::scoped_lock(boost::asio::detail::posix_mutex&amp;) (scoped_lock.hpp:36) by 0x4224E4: boost::asio::detail::epoll_reactor::register_internal_descriptor(int, int, boost::asio::detail::epoll_reactor::descriptor_state*&amp;, boost::asio::detail::reactor_op*) (epoll_reactor.ipp:179) by 0x4250FC: boost::asio::detail::signal_set_service::add_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:485) by 0x4248BB: boost::asio::detail::signal_set_service::signal_set_service(boost::asio::io_service&amp;) (signal_set_service.ipp:128) by 0x42558B: boost::asio::signal_set_service::signal_set_service(boost::asio::io_service&amp;) (signal_set_service.hpp:53) by 0x42B628: boost::asio::io_service::service* boost::asio::detail::service_registry::create&lt;boost::asio::signal_set_service&gt;(boost::asio::io_service&amp;) (service_registry.hpp:81) by 0x408742: boost::asio::detail::service_registry::do_use_service(boost::asio::io_service::service::key const&amp;, boost::asio::io_service::service* (*)(boost::asio::io_service&amp;)) (service_registry.ipp:123) by 0x42A92F: boost::asio::signal_set_service&amp; boost::asio::detail::service_registry::use_service&lt;boost::asio::signal_set_service&gt;() (service_registry.hpp:48) by 0x42984A: boost::asio::signal_set_service&amp; boost::asio::use_service&lt;boost::asio::signal_set_service&gt;(boost::asio::io_service&amp;) (io_service.hpp:33) by 0x428633: boost::asio::basic_io_object&lt;boost::asio::signal_set_service, false&gt;::basic_io_object(boost::asio::io_service&amp;) (basic_io_object.hpp:90) ---------------------------------------------------------------- Thread #1: lock order "0x619E550 before 0x64C720" violated Observed (incorrect) order is: acquisition of lock at 0x64C720 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408845: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) by 0x40E523: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_static_mutex&gt;::scoped_lock(boost::asio::detail::posix_static_mutex&amp;) (scoped_lock.hpp:36) by 0x425166: boost::asio::detail::signal_set_service::remove_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:492) by 0x4248F0: boost::asio::detail::signal_set_service::shutdown_service() (signal_set_service.ipp:138) by 0x42564D: boost::asio::signal_set_service::shutdown_service() (signal_set_service.hpp:110) by 0x41AA69: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:37) by 0x41AB32: boost::asio::io_service::~io_service() (io_service.ipp:53) by 0x41B178: http::server3::server::~server() (in /root/server3/server3) by 0x41A66A: main (main.cpp:37) followed by a later acquisition of lock at 0x619E550 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408545: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) by 0x40D9E1: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;::scoped_lock(boost::asio::detail::posix_mutex&amp;) (scoped_lock.hpp:36) by 0x40AC3A: boost::asio::detail::epoll_reactor::deregister_descriptor(int, boost::asio::detail::epoll_reactor::descriptor_state*&amp;, bool) (epoll_reactor.ipp:307) by 0x4251BC: boost::asio::detail::signal_set_service::remove_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:499) by 0x4248F0: boost::asio::detail::signal_set_service::shutdown_service() (signal_set_service.ipp:138) by 0x42564D: boost::asio::signal_set_service::shutdown_service() (signal_set_service.hpp:110) by 0x41AA69: boost::asio::detail::service_registry::~service_registry() (service_registry.ipp:37) by 0x41AB32: boost::asio::io_service::~io_service() (io_service.ipp:53) by 0x41B178: http::server3::server::~server() (in /root/server3/server3) by 0x41A66A: main (main.cpp:37) Required order was established by acquisition of lock at 0x619E550 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408545: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) by 0x40D9E1: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;::scoped_lock(boost::asio::detail::posix_mutex&amp;) (scoped_lock.hpp:36) by 0x422BD3: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:611) by 0x422D38: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&amp;, unsigned long) (epoll_reactor.ipp:648) by 0x409C69: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&amp;, boost::system::error_code const&amp;, unsigned long) (task_io_service_operation.hpp:37) by 0x4236AD: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:412) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) by 0x42EB34: boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;::operator()(boost::asio::io_service*) const (mem_fn_template.hpp:49) by 0x42EA72: unsigned long boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt;::operator()&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list0&gt;(boost::_bi::type&lt;unsigned long&gt;, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;&amp;, boost::_bi::list0&amp;, long) (bind.hpp:243) by 0x42E91E: boost::_bi::bind_t&lt;unsigned long, boost::_mfi::mf0&lt;unsigned long, boost::asio::io_service&gt;, boost::_bi::list1&lt;boost::_bi::value&lt;boost::asio::io_service*&gt; &gt; &gt;::operator()() (bind_template.hpp:20) followed by a later acquisition of lock at 0x64C720 at 0x4C2C692: pthread_mutex_lock (hg_intercepts.c:495) by 0x408845: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) by 0x40E523: boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_static_mutex&gt;::scoped_lock(boost::asio::detail::posix_static_mutex&amp;) (scoped_lock.hpp:36) by 0x424EE7: boost::asio::detail::signal_set_service::deliver_signal(int) (signal_set_service.ipp:431) by 0x42477C: boost::asio::detail::signal_set_service::pipe_read_op::do_perform(boost::asio::detail::reactor_op*) (signal_set_service.ipp:95) by 0x409DE0: boost::asio::detail::reactor_op::perform() (reactor_op.hpp:40) by 0x422C2F: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:622) by 0x422D38: boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&amp;, unsigned long) (epoll_reactor.ipp:648) by 0x409C69: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&amp;, boost::system::error_code const&amp;, unsigned long) (task_io_service_operation.hpp:37) by 0x4236AD: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&lt;boost::asio::detail::posix_mutex&gt;&amp;, boost::asio::detail::task_io_service_thread_info&amp;, boost::system::error_code const&amp;) (task_io_service.ipp:412) by 0x423302: boost::asio::detail::task_io_service::run(boost::system::error_code&amp;) (task_io_service.ipp:153) by 0x42393A: boost::asio::io_service::run() (io_service.ipp:59) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload