I can reproduce that with krillin here.. and on mx4 I sometimes get it to hang during shutdown.. hread 1 (Thread 0xb6f5e000 (LWP 21998)): #0 0xb6e59d44 in __libc_do_syscall () from /lib/arm-linux-gnueabihf/libpthread.so.0 No symbol table info available. #1 0xb6e556b0 in pthread_cond_wait@@GLIBC_2.4 () from /lib/arm-linux-gnueabihf/libpthread.so.0 No symbol table info available. #2 0xb6ee56e4 in std::condition_variable::wait(std::unique_lock&) () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 No symbol table info available. #3 0xb69d18e2 in std::condition_variable::wait(std::unique_lock&, std::__future_base::_State_baseV2::wait()::{lambda()#1}) (this=0x1d2420, __lock=..., __p=...) ---Type to continue, or q to quit--- at /usr/arm-linux-gnueabihf/include/c++/4.9.3/condition_variable:98 No locals. #4 0xb69d0ec6 in std::__future_base::_State_baseV2::wait (this=0x1d2400) at /usr/arm-linux-gnueabihf/include/c++/4.9.3/future:323 __lock = {_M_device = 0x1d2408, _M_owns = true} #5 0xb69d26bc in std::__basic_future::wait (this=0x1d9a78) at /usr/arm-linux-gnueabihf/include/c++/4.9.3/future:596 No locals. #6 0xb6a5c446 in mir::compositor::MultiThreadedCompositor::destroy_compositing_threads (this=0x1ce5f8) at /home/andreas/mir/load-all-platforms/src/server/compositor/multi_threaded_compositor.cpp:341 f = @0x1d9a78: {> = { = {}, _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, } __for_range = std::vector of length 1, capacity 1 = { {> = { = {}, _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, }} __for_begin = {> = { = {}, _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, } ---Type to continue, or q to quit--- __for_end = {> = { = {}, _M_state = }, } #7 0xb6a5c15e in mir::compositor::MultiThreadedCompositor::stop ( this=0x1ce5f8) at /home/andreas/mir/load-all-platforms/src/server/compositor/multi_threaded_compositor.cpp:307 started = mir::compositor::CompositorState::started cleanup_if_unwinding = {unwind = {__this = 0x1ce5f8}} #8 0xb6967c72 in mir::DisplayServer::run (this=0xbebc41e8) at /home/andreas/mir/load-all-platforms/src/server/display_server.cpp:206 server = @0x16aa50: {emergency_cleanup = std::shared_ptr (count 2, weak 2) 0x16a284, graphics_platform = std::shared_ptr (count 1, weak 1) 0x16df64, display = std::shared_ptr (count 6, weak 1) 0x16e074, input_dispatcher = std::shared_ptr (count 2, weak 1) 0x1b8410, compositor = std::shared_ptr (count 2, weak 1) 0x1ce5f8, connector = std::shared_ptr (count 1, weak 1) 0x1cee2c, prompt_connector = std::shared_ptr (count 1, weak 1) 0x1cf20c, input_manager = std::shared_ptr (count 1, weak 1) 0x1d1fac, main_loop = std::shared_ptr (count 7, weak 1) 0x16a2d0, server_status_listener = std::shared_ptr (count 1, weak 1) 0x1d99a4, ---Type to continue, or q to quit--- display_changer = std::shared_ptr (count 3, weak 1) 0x1ce990} #9 0xb6963cd2 in mir::run_mir(mir::ServerConfiguration&, std::function, std::function const&) (config=..., init=..., terminator=...) at /home/andreas/mir/load-all-platforms/src/server/run_mir.cpp:110 server_ptr = 0xbebc41e8 main_loop = std::shared_ptr (count 7, weak 1) 0x16a2d0 fatal_error_strategy = {old_fatal_error_handler = 0xb67d9f31 } server = {p = {_M_b = {_M_p = 0x16aa50}}} concurrent_calls = {> = { _M_i = 1}, } raii = {deleter = {}, owner = true} #10 0xb698a732 in mir::Server::run (this=0xbebc4288) at /home/andreas/mir/load-all-platforms/src/server/server.cpp:404 emergency_cleanup = std::shared_ptr (count 2, weak 2) 0x16a284 #11 0xb6c7070a in main (argc=3, argv=0xbebc4454) at /home/andreas/mir/load-all-platforms/examples/server_example.cpp:108 context = { client_kill_action = std::unique_ptr containing 0x1d4c80, server_stop_action = std::unique_ptr containing 0x1d5270, test_failed = { = {_M_base = { ---Type to continue, or q to quit--- _M_i = false}}, }} screen_rotation_filter = std::shared_ptr (count 2, weak 0) 0x1597ec server = {self = std::shared_ptr (count 2, weak 0) 0x1584e4} quit_filter = std::shared_ptr (count 2, weak 1) 0x159574 printing_filter = std::shared_ptr (count 2, weak 0) 0x159adc #12 0x00010f26 in main (argc=3, argv=0xbebc4454) at /home/andreas/mir/load-all-platforms/examples/mir_demo_server_loader.cpp:40 so = 0x14b058 loaded_main = 0xb6c705f9