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

Reply via email to