Public bug reported: helgrind: Lock order violated (potential for deadlock) in boost::asio::io_service::run()
==21450== ---------------------------------------------------------------- ==21450== ==21450== Thread #1: lock order "0x5735520 before 0xA87DD98" violated ==21450== ==21450== Observed (incorrect) order is: acquisition of lock at 0xA87DD98 ==21450== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==21450== by 0x52E6A6F: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) ==21450== by 0x52EC53F: boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>::scoped_lock(boost::asio::detail::posix_mutex&) (scoped_lock.hpp:36) ==21450== by 0x52E8B97: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:611) ==21450== by 0x52E8CFA: 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&, unsigned long) (epoll_reactor.ipp:648) ==21450== by 0x52E6E6B: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) (task_io_service_operation.hpp:37) ==21450== by 0x52E992C: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) (task_io_service.ipp:412) ==21450== by 0x52E9383: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:153) ==21450== by 0x52E9C8E: boost::asio::io_service::run() (io_service.ipp:59) ==21450== by 0x52E5DDD: mir::AsioMainLoop::run() (asio_main_loop.cpp:121) ==21450== by 0x52889DC: mir::DisplayServer::run() (display_server.cpp:210) ==21450== by 0x527EFF5: mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>) (run_mir.cpp:80) ==21450== ==21450== followed by a later acquisition of lock at 0x5735520 ==21450== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==21450== by 0x52EA51D: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) ==21450== by 0x52ED2FF: boost::asio::detail::scoped_lock<boost::asio::detail::posix_static_mutex>::scoped_lock(boost::asio::detail::posix_static_mutex&) (scoped_lock.hpp:36) ==21450== by 0x52EB219: boost::asio::detail::signal_set_service::deliver_signal(int) (signal_set_service.ipp:431) ==21450== by 0x52EA5FB: boost::asio::detail::signal_set_service::pipe_read_op::do_perform(boost::asio::detail::reactor_op*) (signal_set_service.ipp:95) ==21450== by 0x52E6FD4: boost::asio::detail::reactor_op::perform() (reactor_op.hpp:40) ==21450== by 0x52E8BF3: boost::asio::detail::epoll_reactor::descriptor_state::perform_io(unsigned int) (epoll_reactor.ipp:622) ==21450== by 0x52E8CFA: 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&, unsigned long) (epoll_reactor.ipp:648) ==21450== by 0x52E6E6B: boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) (task_io_service_operation.hpp:37) ==21450== by 0x52E992C: boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) (task_io_service.ipp:412) ==21450== by 0x52E9383: boost::asio::detail::task_io_service::run(boost::system::error_code&) (task_io_service.ipp:153) ==21450== by 0x52E9C8E: boost::asio::io_service::run() (io_service.ipp:59) ==21450== ==21450== Required order was established by acquisition of lock at 0x5735520 ==21450== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==21450== by 0x52EA51D: boost::asio::detail::posix_static_mutex::lock() (posix_static_mutex.hpp:44) ==21450== by 0x52ED2FF: boost::asio::detail::scoped_lock<boost::asio::detail::posix_static_mutex>::scoped_lock(boost::asio::detail::posix_static_mutex&) (scoped_lock.hpp:36) ==21450== by 0x52EB38A: boost::asio::detail::signal_set_service::add_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:467) ==21450== by 0x52EA731: boost::asio::detail::signal_set_service::signal_set_service(boost::asio::io_service&) (signal_set_service.ipp:128) ==21450== by 0x52EB8C4: boost::asio::signal_set_service::signal_set_service(boost::asio::io_service&) (signal_set_service.hpp:53) ==21450== by 0x52F1C5E: boost::asio::io_service::service* boost::asio::detail::service_registry::create<boost::asio::signal_set_service>(boost::asio::io_service&) (service_registry.hpp:81) ==21450== by 0x52E6D07: boost::asio::detail::service_registry::do_use_service(boost::asio::io_service::service::key const&, boost::asio::io_service::service* (*)(boost::asio::io_service&)) (service_registry.ipp:123) ==21450== by 0x52F130B: boost::asio::signal_set_service& boost::asio::detail::service_registry::use_service<boost::asio::signal_set_service>() (service_registry.hpp:48) ==21450== by 0x52F06E6: boost::asio::signal_set_service& boost::asio::use_service<boost::asio::signal_set_service>(boost::asio::io_service&) (io_service.hpp:33) ==21450== by 0x52EEBB5: boost::asio::basic_io_object<boost::asio::signal_set_service, false>::basic_io_object(boost::asio::io_service&) (basic_io_object.hpp:90) ==21450== by 0x52ED4DA: boost::asio::basic_signal_set<boost::asio::signal_set_service>::basic_signal_set(boost::asio::io_service&) (basic_signal_set.hpp:106) ==21450== ==21450== followed by a later acquisition of lock at 0xA87DD98 ==21450== at 0x4C2FC35: pthread_mutex_lock (in /usr/lib/valgrind/vgpreload_helgrind-amd64-linux.so) ==21450== by 0x52E6A6F: boost::asio::detail::posix_mutex::lock() (posix_mutex.hpp:52) ==21450== by 0x52EC53F: boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>::scoped_lock(boost::asio::detail::posix_mutex&) (scoped_lock.hpp:36) ==21450== by 0x52E7C69: boost::asio::detail::epoll_reactor::register_internal_descriptor(int, int, boost::asio::detail::epoll_reactor::descriptor_state*&, boost::asio::detail::reactor_op*) (epoll_reactor.ipp:179) ==21450== by 0x52EB426: boost::asio::detail::signal_set_service::add_service(boost::asio::detail::signal_set_service*) (signal_set_service.ipp:485) ==21450== by 0x52EA731: boost::asio::detail::signal_set_service::signal_set_service(boost::asio::io_service&) (signal_set_service.ipp:128) ==21450== by 0x52EB8C4: boost::asio::signal_set_service::signal_set_service(boost::asio::io_service&) (signal_set_service.hpp:53) ==21450== by 0x52F1C5E: boost::asio::io_service::service* boost::asio::detail::service_registry::create<boost::asio::signal_set_service>(boost::asio::io_service&) (service_registry.hpp:81) ==21450== by 0x52E6D07: boost::asio::detail::service_registry::do_use_service(boost::asio::io_service::service::key const&, boost::asio::io_service::service* (*)(boost::asio::io_service&)) (service_registry.ipp:123) ==21450== by 0x52F130B: boost::asio::signal_set_service& boost::asio::detail::service_registry::use_service<boost::asio::signal_set_service>() (service_registry.hpp:48) ==21450== by 0x52F06E6: boost::asio::signal_set_service& boost::asio::use_service<boost::asio::signal_set_service>(boost::asio::io_service&) (io_service.hpp:33) ==21450== by 0x52EEBB5: boost::asio::basic_io_object<boost::asio::signal_set_service, false>::basic_io_object(boost::asio::io_service&) (basic_io_object.hpp:90) ==21450== ==21450== ---------------------------------------------------------------- ** Affects: mir Importance: High Status: New ** Affects: boost1.53 (Ubuntu) Importance: High Status: New ** Also affects: mir Importance: Undecided Status: New ** Changed in: mir Importance: Undecided => High -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1243570 Title: helgrind: Lock order violated (potential for deadlock) in boost::asio::io_service::run() To manage notifications about this bug go to: https://bugs.launchpad.net/mir/+bug/1243570/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs