Deadlock in default window manager when Ctrl+Alt+Backspace with a client connected

Bug #1628482 reported by Andreas Pokorny on 2016-09-28
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MirAL
High
Alan Griffiths

Bug Description

# bin/miral-shell --arw-file -f /tmp/mir_socket --vt 1

# export GDK_BACKEND=mir
# export MIR_HOST_SOCKET=/tmp/mir_socket
# gedit

Switch to the virtual terminal of miral then press Ctrl+Alt+Backspace

This results in a dead lock:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f7e23daf9cd in pthread_join (threadid=140179578386176,
    thread_return=0x0) at pthread_join.c:90
90 pthread_join.c: No such file or directory.
(gdb) thread apply all bt full

Thread 8 (Thread 0x7f7e19f97700 (LWP 2352)):
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
No locals.
#1 0x00007f7e23db0efd in __GI___pthread_mutex_lock (mutex=0x556d873e0050) at ../nptl/pthread_mutex_lock.c:80
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = 0
        id = <optimized out>
#2 0x0000556d85c6ca73 in __gthread_mutex_lock (__mutex=0x556d873e0050) at /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:748
No locals.
#3 0x0000556d85c706de in std::mutex::lock (this=0x556d873e0050) at /usr/include/c++/6/bits/std_mutex.h:103
        __e = 32638
#4 0x0000556d85c71118 in std::lock_guard<std::mutex>::lock_guard (this=0x7f7e19f95bd0, __m=...) at /usr/include/c++/6/bits/std_mutex.h:162
No locals.
#5 0x0000556d85c6e124 in TitlebarProvider::find_titlebar_data (this=0x556d873dff90, window=...) at /home/andreas/miral/miral/miral-shell/titlebar_provider.cpp:233
        lock = {_M_device = @0x556d873e0050}
        find = {first = std::weak_ptr (expired, weak 0) 0x7f7e04007f70, second = {titlebar = {_M_b = {_M_p = }},
            on_create = {<std::_Maybe_unary_or_binary_function<void, MirSurface*>> = {<std::unary_function<MirSurface*, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {
                    _M_object = , _M_const_object = , _M_function_pointer = , _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x556d873dff80, this adjustment 140179578379376}, _M_pod_data = "\200\377=\207mU\000\000p\\\371\031~\177\000"},
                _M_manager = <std::get<0ul, TitlebarProvider*, std::default_delete<TitlebarProvider> >(std::tuple<TitlebarProvider*, std::default_delete<TitlebarProvider> > const&)+24>}, _M_invoker =
    <std::unique_ptr<miral::WindowInfo::Self, std::default_delete<miral::WindowInfo::Self> >::get() const+24>}, window = {self = std::shared_ptr (count -15405824, weak 1739491823) 0x556d873dff80}}}
#6 0x0000556d85c6d87b in TitlebarProvider::destroy_titlebar_for (this=0x556d873dff90, window=...) at /home/andreas/miral/miral/miral-shell/titlebar_provider.cpp:138
        data = 0x7f7e19f95c58
#7 0x0000556d85c6a3da in TitlebarWindowManagerPolicy::advise_delete_window (this=0x556d873dff40, window_info=...) at /home/andreas/miral/miral/miral-shell/titlebar_window_manager.cpp:305
No locals.
Python Exception <class 'gdb.error'> There is no member named _M_refcount.:
Python Exception <class 'gdb.error'> There is no member named _M_refcount.:
#8 0x00007f7e251aab54 in miral::BasicWindowManager::remove_surface (this=0x556d873dfdf0, session=, surface=) at /home/andreas/miral/miral/miral/basic_window_manager.cpp:157
        lock = {lock = {_M_device = @0x556d873dfe28}, policy = 0x556d873dff40}
Python Exception <class 'gdb.error'> There is no member named _M_head_impl.:
        info = @0x7f7e04007f60: {self = }
        is_active_window = false
Python Exception <class 'gdb.error'> There is no member named _M_head_impl.:
        session_info = @0x7f7e236df636: {self = }
Python Exception <class 'gdb.error'> There is no member named _M_refcount.:
        parent = {self = }
#9 0x00007f7e237357ac in mir::shell::AbstractShell::destroy_surface(std::shared_ptr<mir::scene::Session> const&, mir::IntWrapper<mir::frontend::detail::SessionsSurfaceIdTag, int>) () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#10 0x00007f7e23763c67 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#11 0x00007f7e236f63ec in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#12 0x00007f7e23734739 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#13 0x00007f7e237062e5 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#14 0x00007f7e2371f3d1 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#15 0x00007f7e2371fa28 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#16 0x00007f7e2375d760 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#17 0x00007f7e2375db87 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#18 0x00007f7e23740e2b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#19 0x00007f7e2371ec8d in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#20 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#21 0x00007f7e23dae70a in start_thread (arg=0x7f7e19f97700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e19f97700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179578386176, 5580441564189973104, 0, 140724163552031, 140179578386880, 140179578386176, -5508599453468173712, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
---Type <return> to continue, or q <return> to quit---
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#22 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 7 (Thread 0x7f7e1a798700 (LWP 2351)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007f7e2371eb16 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#2 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#3 0x00007f7e23dae70a in start_thread (arg=0x7f7e1a798700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e1a798700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179586778880, 5580441564189973104, 0, 140724163552031, 140179586779584, 140179586778880, -5508602751466186128, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#4 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 6 (Thread 0x7f7e1af99700 (LWP 2350)):
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
No locals.
#1 0x00007f7e23db0efd in __GI___pthread_mutex_lock (mutex=0x556d873dfe28) at ../nptl/pthread_mutex_lock.c:80
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        type = 0
        id = <optimized out>
#2 0x00007f7e251d1a2a in __gthread_mutex_lock (__mutex=0x556d873dfe28) at /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:748
No locals.
#3 0x00007f7e251d1bfa in std::mutex::lock() (this=0x556d873dfe28) at /usr/include/c++/6/bits/std_mutex.h:103
        __e = 1739491824
#4 0x00007f7e251d2982 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) [clone .lto_priv.349] (this=0x7f7e1af98530, __m=...) at /usr/include/c++/6/bits/std_mutex.h:162
No locals.
Python Exception <class 'gdb.error'> There is no member named _M_head_impl.:
#5 0x00007f7e251a9848 in (anonymous namespace)::Locker::Locker(std::mutex&, std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> > const&) [clone .lto_priv.317] (this=0x7f7e1af98530, mutex=..., policy=)
    at /home/andreas/miral/miral/miral/basic_window_manager.cpp:45
No locals.
#6 0x00007f7e251a664c in miral::BasicWindowManager::handle_keyboard_event (this=0x556d873dfdf0, event=0x7f7e0c097400) at /home/andreas/miral/miral/miral/basic_window_manager.cpp:251
        lock = {lock = {_M_device = @0x556d873dfe28}, policy = 0x7f7e2372ee54 <mir::shell::AbstractShell::handle(MirEvent const&)+132>}
#7 0x00007f7e236d7669 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#8 0x00007f7e236d4ed2 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#9 0x00007f7e236d93ed in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#10 0x00007f7e236d0c04 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#11 0x00007f7e1c20977a in mir::input::evdev::LibInputDevice::process_event(libinput_event*) () from /usr/lib/x86_64-linux-gnu/mir/server-platform/input-evdev.so.5
No symbol table info available.
#12 0x00007f7e1c20b745 in mir::input::evdev::Platform::process_input_events() () from /usr/lib/x86_64-linux-gnu/mir/server-platform/input-evdev.so.5
No symbol table info available.
#13 0x00007f7e24579c90 in mir::dispatch::ReadableFd::dispatch(unsigned int) () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#14 0x00007f7e2457607f in mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#15 0x00007f7e2457607f in mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#16 0x00007f7e2457607f in mir::dispatch::MultiplexingDispatchable::dispatch(unsigned int) () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#17 0x00007f7e2457c3b2 in ?? () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#18 0x00007f7e24578e9e in ?? () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#19 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#20 0x00007f7e23dae70a in start_thread (arg=0x7f7e1af99700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e1af99700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179595171584, 5580441564189973104, 0, 140724163551359, 140179595172288, 140179595171584, -5508601657860138384, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#21 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 5 (Thread 0x7f7e03fff700 (LWP 1908)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007f7e2429152c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007f7e247ce8cb in ?? () from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
No symbol table info available.
#3 0x00007f7e247d08f7 in ?? () from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
No symbol table info available.
#4 0x00007f7e247d1269 in mir_connection_release () from /usr/lib/x86_64-linux-gnu/libmirclient.so.9
No symbol table info available.
#5 0x00007f7e251b0cc4 in miral::toolkit::Connection::deleter (connection=0x556d873e6800) at /home/andreas/miral/miral/include/miral/toolkit/connection.h:45
No locals.
#6 0x00007f7e251ac1e4 in std::_Sp_counted_deleter<MirConnection*, void (*)(MirConnection*), std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0x556d873e7ff0) at /usr/include/c++/6/bits/shared_ptr_base.h:464
No locals.
#7 0x0000556d85c5d5d2 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x556d873e7ff0) at /usr/include/c++/6/bits/shared_ptr_base.h:150
No locals.
#8 0x0000556d85c5c981 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x7f7e03ffeca8, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/shared_ptr_base.h:662
No locals.
#9 0x0000556d85c65994 in std::__shared_ptr<MirConnection, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x7f7e03ffeca0, __in_chrg=<optimized out>) at /usr/include/c++/6/bits/shared_ptr_base.h:928
No locals.
#10 0x0000556d85c7104e in std::__shared_ptr<MirConnection, (__gnu_cxx::_Lock_policy)2>::reset (this=0x556d873e0078) at /usr/include/c++/6/bits/shared_ptr_base.h:1025
No locals.
#11 0x0000556d85c70728 in miral::toolkit::Connection::reset (this=0x556d873e0078) at /home/andreas/miral/miral/include/miral/toolkit/connection.h:42
No locals.
#12 0x0000556d85c6ce03 in TitlebarProvider::<lambda()>::operator()(void) const (__closure=0x7f7e03ffed90) at /home/andreas/miral/miral/miral-shell/titlebar_provider.cpp:77
        lock = {_M_device = @0x556d873e0050}
        this = 0x556d873dff90
#13 0x0000556d85c6ed42 in std::_Function_handler<void(), TitlebarProvider::stop()::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/6/functional:1740
No locals.
#14 0x0000556d85c721a8 in std::function<void ()>::operator()() const (this=0x7f7e03ffed90) at /usr/include/c++/6/functional:2136
No locals.
#15 0x0000556d85c6e46b in Worker::do_work (this=0x556d873dff90) at /home/andreas/miral/miral/miral-shell/titlebar_provider.cpp:266
        work = {<std::_Maybe_unary_or_binary_function<void>> = {<No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x556d873dff90, _M_const_object = 0x556d873dff90,
                _M_function_pointer = 0x556d873dff90, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x556d873dff90, this adjustment 7471060500018949376}, _M_pod_data = "\220\377=\207mU\000\000\000\355\024\377\360\211\256g"},
---Type <return> to continue, or q <return> to quit---
            _M_manager = 0x556d85c6ed45 <std::_Function_base::_Base_manager<TitlebarProvider::stop()::<lambda()> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>},
          _M_invoker = 0x556d85c6ed22 <std::_Function_handler<void(), TitlebarProvider::stop()::<lambda()> >::_M_invoke(const std::_Any_data &)>}
#16 0x0000556d85c6e57d in Worker::<lambda()>::operator()(void) const (__closure=0x7f7e080008c8) at /home/andreas/miral/miral/miral-shell/titlebar_provider.cpp:279
        this = 0x556d873dff90
#17 0x0000556d85c706b0 in std::_Bind_simple<Worker::start_work()::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) (this=0x7f7e080008c8) at /usr/include/c++/6/functional:1400
No locals.
#18 0x0000556d85c7063a in std::_Bind_simple<Worker::start_work()::<lambda()>()>::operator()(void) (this=0x7f7e080008c8) at /usr/include/c++/6/functional:1389
No locals.
#19 0x0000556d85c7060a in std::thread::_State_impl<std::_Bind_simple<Worker::start_work()::<lambda()>()> >::_M_run(void) (this=0x7f7e080008c0) at /usr/include/c++/6/thread:196
No locals.
#20 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#21 0x00007f7e23dae70a in start_thread (arg=0x7f7e03fff700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e03fff700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179209713408, 5580441564189973104, 0, 140179559439263, 140179209714112, 140179209713408, -5508551096431388048, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#22 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 4 (Thread 0x7f7e19796700 (LWP 1906)):
#0 0x00007f7e23adc10d in poll () at ../sysdeps/unix/syscall-template.S:84
No locals.
#1 0x00007f7e2457c39c in ?? () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#2 0x00007f7e24578e9e in ?? () from /usr/lib/x86_64-linux-gnu/libmircommon.so.6
No symbol table info available.
#3 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#4 0x00007f7e23dae70a in start_thread (arg=0x7f7e19796700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e19796700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179569993472, 5580441564189973104, 0, 140724163551135, 140179569994176, 140179569993472, -5508600551369188752, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#5 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 3 (Thread 0x7f7e1b79a700 (LWP 1902)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007f7e2429152c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007f7e23718ba1 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#3 0x00007f7e2376c2b9 in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#4 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#5 0x00007f7e23dae70a in start_thread (arg=0x7f7e1b79a700) at pthread_create.c:333
---Type <return> to continue, or q <return> to quit---
        __res = <optimized out>
        pd = 0x7f7e1b79a700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179603564288, 5580441564189973104, 0, 140724163552127, 140179603564992, 140179603564288, -5508604955858150800, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#6 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 2 (Thread 0x7f7e1cc16700 (LWP 1901)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007f7e2429152c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007f7e236f264b in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#3 0x00007f7e2429750f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#4 0x00007f7e23dae70a in start_thread (arg=0x7f7e1cc16700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7f7e1cc16700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140179625043712, 5580441564189973104, 0, 140724163551135, 140179625044416, 140179625043712, -5508588937777620368, -5508480977052870032}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
              canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#5 0x00007f7e23ae80ff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105
No locals.

Thread 1 (Thread 0x7f7e255ce7c0 (LWP 1900)):
#0 0x00007f7e23daf9cd in pthread_join (threadid=140179578386176, thread_return=0x0) at pthread_join.c:90
        __tid = 2352
        _buffer = {__routine = 0x7f7e23daf8f0 <cleanup>, __arg = 0x7f7e19f97d28, __canceltype = 1, __prev = 0x0}
        oldtype = 0
        pd = 0x7f7e19f97700
        self = 0x7f7e255ce7c0
        result = 0
#1 0x00007f7e242977b7 in std::thread::join() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2 0x00007f7e237409fa in ?? () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#3 0x00007f7e236b36ba in mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>, std::function<void (int)> const&) () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#4 0x00007f7e236c1026 in mir::Server::run() () from /usr/lib/x86_64-linux-gnu/libmirserver.so.41
No symbol table info available.
#5 0x00007f7e251cb762 in run_with (this=0x556d8714ed40, options=...) at /home/andreas/miral/miral/miral/runner.cpp:217
        main_loop = {<No data fields>}
        server = {<No data fields>}
#6 0x00007f7e251cbc1e in miral::MirRunner::run_with(std::initializer_list<std::function<void (mir::Server&)> >) (this=0x7ffce5c7a920, options=...) at /home/andreas/miral/miral/miral/runner.cpp:266
No locals.
#7 0x0000556d85c5bf23 in main (argc=8, argv=0x7ffce5c7acc8) at /home/andreas/miral/miral/miral-shell/shell_main.cpp:78
        spinner = {self = std::shared_ptr (count 4, weak 0) 0x556d8714eb50}
        launcher = {self = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<miral::InternalClientLauncher::Self, std::allocator<miral::InternalClientLauncher::Self>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<miral::InternalClientLauncher::Self, std::allocator<miral::InternalClientLauncher::Self>, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 3, weak 0) 0x556d8714eba0}
        outputs_monitor = {self = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<miral::ActiveOutputsMonitor::Self, std::allocator<miral::ActiveOutputsMonitor::Self>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<miral::ActiveOutputsMonitor::Self, std::allocator<miral::ActiveOutputsMonitor::Self>, (__gnu_cxx::_Lock_policy)2>'
std::shared_ptr (count 4, weak 1) 0x556d8714ebd0}
---Type <return> to continue, or q <return> to quit---
        window_managers = {policies = std::vector of length 2, capacity 2 = {{name = "titlebar",
              build = {<std::_Maybe_unary_or_binary_function<std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> >, miral::WindowManagerTools const&>> = {<std::unary_function<miral::WindowManagerTools const&, std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> > >> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7ffce5c7a940, _M_const_object = 0x7ffce5c7a940,
                      _M_function_pointer = 0x7ffce5c7a940, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7ffce5c7a940, this adjustment 140724163553616}, _M_pod_data = "@\251\307\345\374\177\000\000P\251\307\345\374\177\000"},
                  _M_manager = 0x556d85c5f0d3 <std::_Function_base::_Base_manager<miral::WindowManagerOption miral::add_window_manager_policy<TitlebarWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&)::{lambda(miral::WindowManagerTools const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<miral::WindowManagerOption miral::add_window_manager_policy<TitlebarWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&)::{lambda(miral::WindowManagerTools const&)#1}> const&, std::_Manager_operation)>},
                _M_invoker = 0x556d85c5f060 <std::_Function_handler<std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> > (miral::WindowManagerTools const&), miral::WindowManagerOption miral::add_window_manager_policy<TitlebarWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&)::{lambda(miral::WindowManagerTools const&)#1}>::_M_invoke(std::_Any_data const&, miral::WindowManagerTools const&)>}}, {name = "tiling",
              build = {<std::_Maybe_unary_or_binary_function<std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> >, miral::WindowManagerTools const&>> = {<std::unary_function<miral::WindowManagerTools const&, std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> > >> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x556d8714ecf0, _M_const_object = 0x556d8714ecf0,
                      _M_function_pointer = 0x556d8714ecf0, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x556d8714ecf0}, _M_pod_data = "\360\354\024\207mU\000\000\000\000\000\000\000\000\000"},
                  _M_manager = 0x556d85c5f4f1 <std::_Function_base::_Base_manager<miral::WindowManagerOption miral::add_window_manager_policy<TilingWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher, miral::ActiveOutputsMonitor>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&, miral::ActiveOutputsMonitor&)::{lambda(miral::WindowManagerTools const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<miral::WindowManagerOption miral::add_window_manager_policy<TilingWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher, miral::ActiveOutputsMonitor>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&, miral::ActiveOutputsMonitor&)::{lambda(miral::WindowManagerTools const&)#1}> const&, std::_Manager_operation)>},
                _M_invoker = 0x556d85c5f47e <std::_Function_handler<std::unique_ptr<miral::WindowManagementPolicy, std::default_delete<miral::WindowManagementPolicy> > (miral::WindowManagerTools const&), miral::WindowManagerOption miral::add_window_manager_policy<TilingWindowManagerPolicy, SpinnerSplash, miral::InternalClientLauncher, miral::ActiveOutputsMonitor>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, SpinnerSplash&, miral::InternalClientLauncher&, miral::ActiveOutputsMonitor&)::{lambda(miral::WindowManagerTools const&)#1}>::_M_invoke(std::_Any_data const&, miral::WindowManagerTools const&)>}}}}
        runner = {self = std::unique_ptr<miral::MirRunner::Self> containing 0x556d8714ed40}
        quit_on_ctrl_alt_bksp = {__runner = @0x7ffce5c7a920}
(gdb)

Related branches

Changed in miral:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alan Griffiths (alan-griffiths)
Changed in miral:
status: In Progress → Fix Committed
Changed in miral:
milestone: none → 0.2
Changed in miral:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers