crash due to null pointer dereference when restarting
Steps to reproduce:
- start
gnome-shell
in an X11 session - press alt+f2
- type
r
and press enter - observe that
gnome-shell
crashes
When gnome-shell
running in an X11 session is restarted, it dereferences a null pointer:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 meta_window_get_window_type (window=0x0) at ../mutter/src/core/window.c:7101
7101 return window->type;
[Current thread is 1 (Thread 0x7fce08d4bb00 (LWP 2062762))]
(gdb) p window
$1 = 0x0
(gdb) bt
#0 meta_window_get_window_type (window=0x0) at ../mutter/src/core/window.c:7101
#1 meta_window_actor_queue_destroy (self=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:794
#2 meta_compositor_real_remove_window (compositor=<optimized out>, window=<optimized out>) at ../mutter/src/compositor/compositor.c:524
#3 0x00007fce0f950683 in meta_compositor_remove_window (window=0x55de2aa921d0, compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:531
#4 meta_window_unmanage (window=0x55de2aa921d0, timestamp=<optimized out>) at ../mutter/src/core/window.c:1454
#5 0x00007fce0f91ed6b in meta_display_unmanage_windows (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:2704
#6 meta_display_close (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:1137
#7 meta_display_close (display=0x55de28bee0f0, timestamp=0) at ../mutter/src/core/display.c:1118
#8 0x00007fce109817e4 in shell_global_reexec_self (global=0x55de28a5e050) at ../gnome-shell/src/shell-global.c:843
...
the entire call stack
#0 meta_window_get_window_type (window=0x0) at ../mutter/src/core/window.c:7101
#1 meta_window_actor_queue_destroy (self=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:794
#2 meta_compositor_real_remove_window (compositor=<optimized out>, window=<optimized out>) at ../mutter/src/compositor/compositor.c:524
#3 0x00007fce0f950683 in meta_compositor_remove_window (window=0x55de2aa921d0, compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:531
#4 meta_window_unmanage (window=0x55de2aa921d0, timestamp=<optimized out>) at ../mutter/src/core/window.c:1454
#5 0x00007fce0f91ed6b in meta_display_unmanage_windows (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:2704
#6 meta_display_close (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:1137
#7 meta_display_close (display=0x55de28bee0f0, timestamp=0) at ../mutter/src/core/display.c:1118
#8 0x00007fce109817e4 in shell_global_reexec_self (global=0x55de28a5e050) at ../gnome-shell/src/shell-global.c:843
#9 0x00007fce0ecbf536 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#10 0x00007fce0ecbc037 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#11 0x00007fce0fc8dac0 in Gjs::Function::invoke(JSContext*, JS::CallArgs const&, JS::Handle<JSObject*>, _GIArgument*) (this=0x55de2a213370, context=0x55de28a6daa0, args=..., this_obj=..., r_value=0x0) at ../gjs/gi/function.cpp:968
#12 0x00007fce0fc8e1f8 in Gjs::Function::call(JSContext*, unsigned int, JS::Value*) (context=0x55de28a6daa0, js_argc=<optimized out>, vp=<optimized out>) at ../gjs/gi/function.cpp:1148
#13 0x00007fce0db7aafd in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) (cx=0x55de28a6daa0, native=0x7fce0fc8e120 <Gjs::Function::call(JSContext*, unsigned int, JS::Value*)>, reason=js::CallReason::Call, args=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:426
#14 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (cx=0x55de28a6daa0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:497
#15 0x00007fce0db7f4ae in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55de28a6daa0, args=..., reason=js::CallReason::Call) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:571
#16 js::CallFromStack(JSContext*, JS::CallArgs const&) (cx=0x55de28a6daa0, args=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:575
#17 Interpret(JSContext*, js::RunState&) (cx=<optimized out>, state=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:3226
#18 0x00007fce0db77c5f in js::RunScript(JSContext*, js::RunState&) (cx=0x55de28a6daa0, state=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:395
#19 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (cx=0x55de28a6daa0, args=..., construct=js::NO_CONSTRUCT, reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:543
#20 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (args=..., cx=<optimized out>, reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:571
#21 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) (cx=0x55de28a6daa0, fval=..., thisv=..., args=..., rval=..., reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:588
#22 0x00007fce0e086fe5 in JS_CallFunction(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSFunction*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (cx=0x55de28a6daa0, obj=..., fun=..., args=..., rval=...) at /usr/src/debug/firefox-91.8.0/js/src/jsapi.cpp:2741
#23 0x00007fce0fc8f091 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=<optimized out>) at /usr/include/mozjs-91/jsapi.h:1156
#24 Gjs::Closure::invoke(JS::Handle<JSObject*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (this=0x55de2a2a37f0, this_obj=..., args=..., retval=...) at ../gjs/gi/closure.cpp:184
#25 0x00007fce0fcbe073 in Gjs::Closure::marshal(_GValue*, unsigned int, _GValue const*, void*, void*) (this=0x55de2a2a37f0, return_value=0x7ffec43b7170, n_param_values=1, param_values=0x7ffec43b71d0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/include/mozjs-91/js/RootingAPI.h:593
#29 0x00007fce10718824 in <emit signal ??? on instance ???> (instance=instance@entry=0x55de28bee0f0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553
#26 0x00007fce106faf8f in g_closure_invoke (closure=0x55de2a2a37f0, return_value=0x7ffec43b7170, n_param_values=1, param_values=0x7ffec43b71d0, invocation_hint=0x7ffec43b7150) at ../glib/gobject/gclosure.c:830
#27 0x00007fce10716ba8 in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55de28bee0f0, emission_return=emission_return@entry=0x7ffec43b72d0, instance_and_params=instance_and_params@entry=0x7ffec43b71d0) at ../glib/gobject/gsignal.c:3743
#28 0x00007fce10717fb8 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffec43b7380) at ../glib/gobject/gsignal.c:3506
#30 0x00007fce0f93dc16 in meta_display_request_restart (display=0x55de28bee0f0) at ../mutter/src/core/display.c:3002
#31 restart_check_ready () at ../mutter/src/core/restart.c:65
#32 restart_check_ready () at ../mutter/src/core/restart.c:59
#33 restart_message_painted (data=<optimized out>) at ../mutter/src/core/restart.c:99
#34 0x00007fce0fb95d8a in _clutter_run_repaint_functions (flags=CLUTTER_REPAINT_FLAGS_POST_PAINT) at ../mutter/clutter/clutter/clutter-main.c:1214
#35 0x00007fce0fbc07fe in handle_frame_clock_frame (frame_clock=<optimized out>, frame_count=<optimized out>, user_data=0x55de28a380f0) at ../mutter/clutter/clutter/clutter-stage-view.c:1208
#36 0x00007fce0fb7e5b4 in clutter_frame_clock_dispatch (time_us=102208073406, frame_clock=0x55de28a40010) at ../mutter/clutter/clutter/clutter-frame-clock.c:701
#37 frame_clock_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../mutter/clutter/clutter/clutter-frame-clock.c:751
#38 0x00007fce105fe163 in g_main_dispatch (context=0x55de2838f940) at ../glib/glib/gmain.c:3417
#39 g_main_context_dispatch (context=0x55de2838f940) at ../glib/glib/gmain.c:4135
#40 0x00007fce106549e9 in g_main_context_iterate.constprop.0 (context=0x55de2838f940, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#41 0x00007fce105fd6a3 in g_main_loop_run (loop=0x55de2ac19a90) at ../glib/glib/gmain.c:4411
#42 0x00007fce0f93658b in meta_context_run_main_loop (context=context@entry=0x55de2838a0c0, error=error@entry=0x7ffec43b7810) at ../mutter/src/core/meta-context.c:437
#43 0x000055de2701f48f in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-shell/src/main.c:566
It appears that meta_window_actor_dispose()
runs before that and clears priv->window
:
Thread 1 "gnome-shell" hit Breakpoint 1, meta_window_actor_dispose (object=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:434
434 {
(gdb) bt
#0 meta_window_actor_dispose (object=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:434
#1 0x00007fce10708bb2 in g_object_run_dispose (object=0x55de2aa96350) at ../glib/gobject/gobject.c:1268
#2 0x00007fce0fb3f70d in clutter_actor_destroy (self=0x55de2aa96350) at ../mutter/clutter/clutter/clutter-actor.c:8008
#3 0x00007fce0fb42a54 in clutter_actor_iter_destroy (iter=0x7ffec43b5d30) at ../mutter/clutter/clutter/clutter-actor.c:17443
#4 clutter_actor_real_destroy (actor=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:5897
#8 0x00007fce10718824 in <emit signal ??? on instance ???> (instance=instance@entry=0x55de28f70300, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553
#5 0x00007fce106faf8f in g_closure_invoke (closure=0x55de289f9150, return_value=0x0, n_param_values=1, param_values=0x7ffec43b5f00, invocation_hint=0x7ffec43b5e80) at ../glib/gobject/gclosure.c:830
#6 0x00007fce10716b11 in signal_emit_unlocked_R (node=node@entry=0x55de289fde90, detail=detail@entry=0, instance=instance@entry=0x55de28f70300, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffec43b5f00) at ../glib/gobject/gsignal.c:3861
#7 0x00007fce107185c7 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffec43b60b0) at ../glib/gobject/gsignal.c:3496
#9 0x00007fce0fb42206 in clutter_actor_dispose (object=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:5553
#10 0x00007fce10708bb2 in g_object_run_dispose (object=0x55de28f70300) at ../glib/gobject/gobject.c:1268
#11 0x00007fce0fb3f70d in clutter_actor_destroy (self=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:8008
#12 0x00007fce0f8f3973 in meta_compositor_real_unmanage (compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:462
#13 0x00007fce0f91e8e0 in meta_compositor_unmanage (compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:470
#14 meta_display_close (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:1135
#15 meta_display_close (display=0x55de28bee0f0, timestamp=0) at ../mutter/src/core/display.c:1118
#16 0x00007fce109817e4 in shell_global_reexec_self (global=0x55de28a5e050) at ../gnome-shell/src/shell-global.c:843
...
the entire call stack
Thread 1 "gnome-shell" hit Breakpoint 1, meta_window_actor_dispose (object=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:434
434 {
(gdb) bt
#0 meta_window_actor_dispose (object=0x55de2aa96350) at ../mutter/src/compositor/meta-window-actor.c:434
#1 0x00007fce10708bb2 in g_object_run_dispose (object=0x55de2aa96350) at ../glib/gobject/gobject.c:1268
#2 0x00007fce0fb3f70d in clutter_actor_destroy (self=0x55de2aa96350) at ../mutter/clutter/clutter/clutter-actor.c:8008
#3 0x00007fce0fb42a54 in clutter_actor_iter_destroy (iter=0x7ffec43b5d30) at ../mutter/clutter/clutter/clutter-actor.c:17443
#4 clutter_actor_real_destroy (actor=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:5897
#8 0x00007fce10718824 in <emit signal ??? on instance ???> (instance=instance@entry=0x55de28f70300, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553
#5 0x00007fce106faf8f in g_closure_invoke (closure=0x55de289f9150, return_value=0x0, n_param_values=1, param_values=0x7ffec43b5f00, invocation_hint=0x7ffec43b5e80) at ../glib/gobject/gclosure.c:830
#6 0x00007fce10716b11 in signal_emit_unlocked_R (node=node@entry=0x55de289fde90, detail=detail@entry=0, instance=instance@entry=0x55de28f70300, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffec43b5f00) at ../glib/gobject/gsignal.c:3861
#7 0x00007fce107185c7 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffec43b60b0) at ../glib/gobject/gsignal.c:3496
#9 0x00007fce0fb42206 in clutter_actor_dispose (object=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:5553
#10 0x00007fce10708bb2 in g_object_run_dispose (object=0x55de28f70300) at ../glib/gobject/gobject.c:1268
#11 0x00007fce0fb3f70d in clutter_actor_destroy (self=0x55de28f70300) at ../mutter/clutter/clutter/clutter-actor.c:8008
#12 0x00007fce0f8f3973 in meta_compositor_real_unmanage (compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:462
#13 0x00007fce0f91e8e0 in meta_compositor_unmanage (compositor=<optimized out>) at ../mutter/src/compositor/compositor.c:470
#14 meta_display_close (timestamp=0, display=0x55de28bee0f0) at ../mutter/src/core/display.c:1135
#15 meta_display_close (display=0x55de28bee0f0, timestamp=0) at ../mutter/src/core/display.c:1118
#16 0x00007fce109817e4 in shell_global_reexec_self (global=0x55de28a5e050) at ../gnome-shell/src/shell-global.c:843
#17 0x00007fce0ecbf536 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#18 0x00007fce0ecbc037 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#19 0x00007fce0fc8dac0 in Gjs::Function::invoke(JSContext*, JS::CallArgs const&, JS::Handle<JSObject*>, _GIArgument*) (this=0x55de2a213370, context=0x55de28a6daa0, args=..., this_obj=..., r_value=0x0) at ../gjs/gi/function.cpp:968
#20 0x00007fce0fc8e1f8 in Gjs::Function::call(JSContext*, unsigned int, JS::Value*) (context=0x55de28a6daa0, js_argc=<optimized out>, vp=<optimized out>) at ../gjs/gi/function.cpp:1148
#21 0x00007fce0db7aafd in CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) (cx=0x55de28a6daa0, native=0x7fce0fc8e120 <Gjs::Function::call(JSContext*, unsigned int, JS::Value*)>, reason=js::CallReason::Call, args=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:426
#22 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (cx=0x55de28a6daa0, args=..., construct=<optimized out>, reason=js::CallReason::Call) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:497
#23 0x00007fce0db7f4ae in InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (cx=0x55de28a6daa0, args=..., reason=js::CallReason::Call) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:571
#24 js::CallFromStack(JSContext*, JS::CallArgs const&) (cx=0x55de28a6daa0, args=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:575
#25 Interpret(JSContext*, js::RunState&) (cx=<optimized out>, state=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:3226
#26 0x00007fce0db77c5f in js::RunScript(JSContext*, js::RunState&) (cx=0x55de28a6daa0, state=...) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:395
#27 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) (cx=0x55de28a6daa0, args=..., construct=js::NO_CONSTRUCT, reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:543
#28 InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason) (args=..., cx=<optimized out>, reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:571
#29 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) (cx=0x55de28a6daa0, fval=..., thisv=..., args=..., rval=..., reason=<optimized out>) at /usr/src/debug/firefox-91.8.0/js/src/vm/Interpreter.cpp:588
#30 0x00007fce0e086fe5 in JS_CallFunction(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSFunction*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (cx=0x55de28a6daa0, obj=..., fun=..., args=..., rval=...) at /usr/src/debug/firefox-91.8.0/js/src/jsapi.cpp:2741
#31 0x00007fce0fc8f091 in JS::Call (rval=..., args=..., fun=..., thisObj=..., cx=<optimized out>) at /usr/include/mozjs-91/jsapi.h:1156
#32 Gjs::Closure::invoke(JS::Handle<JSObject*>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) (this=0x55de2a2a37f0, this_obj=..., args=..., retval=...) at ../gjs/gi/closure.cpp:184
#33 0x00007fce0fcbe073 in Gjs::Closure::marshal(_GValue*, unsigned int, _GValue const*, void*, void*) (this=0x55de2a2a37f0, return_value=0x7ffec43b7170, n_param_values=1, param_values=0x7ffec43b71d0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at /usr/include/mozjs-91/js/RootingAPI.h:593
#37 0x00007fce10718824 in <emit signal ??? on instance ???> (instance=instance@entry=0x55de28bee0f0, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3553
#34 0x00007fce106faf8f in g_closure_invoke (closure=0x55de2a2a37f0, return_value=0x7ffec43b7170, n_param_values=1, param_values=0x7ffec43b71d0, invocation_hint=0x7ffec43b7150) at ../glib/gobject/gclosure.c:830
#35 0x00007fce10716ba8 in signal_emit_unlocked_R (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x55de28bee0f0, emission_return=emission_return@entry=0x7ffec43b72d0, instance_and_params=instance_and_params@entry=0x7ffec43b71d0) at ../glib/gobject/gsignal.c:3743
#36 0x00007fce10717fb8 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffec43b7380) at ../glib/gobject/gsignal.c:3506
#38 0x00007fce0f93dc16 in meta_display_request_restart (display=0x55de28bee0f0) at ../mutter/src/core/display.c:3002
#39 restart_check_ready () at ../mutter/src/core/restart.c:65
#40 restart_check_ready () at ../mutter/src/core/restart.c:59
#41 restart_message_painted (data=<optimized out>) at ../mutter/src/core/restart.c:99
#42 0x00007fce0fb95d8a in _clutter_run_repaint_functions (flags=CLUTTER_REPAINT_FLAGS_POST_PAINT) at ../mutter/clutter/clutter/clutter-main.c:1214
#43 0x00007fce0fbc07fe in handle_frame_clock_frame (frame_clock=<optimized out>, frame_count=<optimized out>, user_data=0x55de28a380f0) at ../mutter/clutter/clutter/clutter-stage-view.c:1208
#44 0x00007fce0fb7e5b4 in clutter_frame_clock_dispatch (time_us=102208073406, frame_clock=0x55de28a40010) at ../mutter/clutter/clutter/clutter-frame-clock.c:701
#45 frame_clock_source_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../mutter/clutter/clutter/clutter-frame-clock.c:751
#46 0x00007fce105fe163 in g_main_dispatch (context=0x55de2838f940) at ../glib/glib/gmain.c:3417
#47 g_main_context_dispatch (context=0x55de2838f940) at ../glib/glib/gmain.c:4135
#48 0x00007fce106549e9 in g_main_context_iterate.constprop.0 (context=0x55de2838f940, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#49 0x00007fce105fd6a3 in g_main_loop_run (loop=0x55de2ac19a90) at ../glib/glib/gmain.c:4411
#50 0x00007fce0f93658b in meta_context_run_main_loop (context=context@entry=0x55de2838a0c0, error=error@entry=0x7ffec43b7810) at ../mutter/src/core/meta-context.c:437
#51 0x000055de2701f48f in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-shell/src/main.c:566
Edited by Barnabás Pőcze