Mir

Comment 4 for bug 1502896

Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

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<std::mutex>&)
    () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
No symbol table info available.
#3 0xb69d18e2 in std::condition_variable::wait<std::__future_base::_State_baseV2::wait()::{lambda()#1}>(std::unique_lock<std::mutex>&, std::__future_base::_State_baseV2::wait()::{lambda()#1}) (this=0x1d2420, __lock=..., __p=...)
---Type <return> to continue, or q <return> 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<void>::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: {<std::__basic_future<void>> = {<std::__future_base> = {<No data fields>},
            _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, <No data fields>}
        __for_range = std::vector of length 1, capacity 1 = {
          {<std::__basic_future<void>> = {<std::__future_base> = {<No data fields>}, _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, <No data fields>}}
        __for_begin = {<std::__basic_future<void>> = {<std::__future_base> = {<No data fields>},
            _M_state = std::shared_ptr (count 2, weak 0) 0x1d2400}, <No data fields>}
---Type <return> to continue, or q <return> to quit---
        __for_end = {<std::__basic_future<void>> = {<std::__future_base> = {<No data fields>},
            _M_state = <error reading variable: Cannot access memory at address 0x15>}, <No data fields>}
#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 <return> to continue, or q <return> to quit---
          display_changer = std::shared_ptr (count 3, weak 1) 0x1ce990}
#9 0xb6963cd2 in mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>, std::function<void (int)> 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
     <mir::fatal_error_except(char const*, ...)>}
        server = {p = {_M_b = {_M_p = 0x16aa50}}}
        concurrent_calls = {<std::__atomic_base<unsigned int>> = {
            _M_i = 1}, <No data fields>}
        raii = {deleter = {<No data fields>}, 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<mir::time::Alarm> containing 0x1d4c80,
          server_stop_action = std::unique_ptr<mir::time::Alarm> containing 0x1d5270, test_failed = {<std::atomic_bool> = {_M_base = {
---Type <return> to continue, or q <return> to quit---
                _M_i = false}}, <No data fields>}}
        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 <main(int, char const**)>