Mutter crashes during shutdown in X11
We had some crashes during x11 tests: https://gitlab.gnome.org/GNOME/mutter/-/jobs/2832924
These were reproducible under stress (as in parallell tests) or using MUTTER_SYNC=1
(i.e. env MUTTER_SYNC=1 meson test -C build x11 -v
).
The trace was actually (in async mode):
#0 0x00007fada18b7d6f in display_error_event (x11_display=0x55c9dca1fad0, error=0x7fff0af5b8a0)
at ../../mutter/src/x11/meta-x11-errors.c:95
95 trap = l->data;
[Current thread is 1 (Thread 0x7fad9d4f9a80 (LWP 2376918))]
(gdb) bt
#0 0x00007fada18b7d6f in display_error_event (x11_display=0x55c9dca1fad0, error=0x7fff0af5b8a0)
at ../../mutter/src/x11/meta-x11-errors.c:95
#1 0x00007fada18b7f1c in meta_x_error (xdisplay=0x55c9dc4377e0, error=0x7fff0af5b8a0)
at ../../mutter/src/x11/meta-x11-errors.c:136
#2 0x00007fada0dc6974 in _XError (dpy=dpy@entry=0x55c9dc4377e0, rep=rep@entry=0x55c9dcadadc0)
at /data/GNOME/xorg/lib/libX11/src/XlibInt.c:1503
#3 0x00007fada0dc3497 in handle_error (dpy=0x55c9dc4377e0, err=0x55c9dcadadc0, in_XReply=<optimized out>)
at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:211
#4 0x00007fada0dc3535 in handle_response (dpy=dpy@entry=0x55c9dc4377e0, response=0x55c9dcadadc0,
in_XReply=in_XReply@entry=1) at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:403
#5 0x00007fada0dc467d in _XReply (dpy=dpy@entry=0x55c9dc4377e0, rep=rep@entry=0x7fff0af5ba60,
extra=extra@entry=0, discard=discard@entry=1) at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:722
#6 0x00007fada0dbfc9f in XSync (dpy=dpy@entry=0x55c9dc4377e0, discard=discard@entry=1)
at /data/GNOME/xorg/lib/libX11/src/Sync.c:44
#7 0x00007fada0da04ff in XCloseDisplay (dpy=0x55c9dc4377e0) at /data/GNOME/xorg/lib/libX11/src/ClDisplay.c:61
#8 0x00007fada1885f87 in meta_clutter_backend_x11_finalize (gobject=0x55c9dc4cb4d0)
at ../../mutter/src/backends/x11/meta-clutter-backend-x11.c:156
#9 0x00007fada13ad45b in g_object_unref (_object=0x55c9dc4cb4d0) at ../../glib/gobject/gobject.c:3937
#10 0x00007fada0f824b5 in clutter_backend_destroy (backend=0x55c9dc4cb4d0)
at ../../mutter/clutter/clutter/clutter-backend.c:753
#11 0x00007fada0fbc4dc in clutter_context_free (clutter_context=0x55c9dc4ca790)
at ../../mutter/clutter/clutter/clutter-main.c:638
#12 0x00007fada17cd2df in meta_backend_dispose (object=0x55c9dc422a70)
at ../../mutter/src/backends/meta-backend.c:245
#13 0x00007fada1884fd1 in meta_backend_x11_dispose (object=0x55c9dc422a70)
at ../../mutter/src/backends/x11/meta-backend-x11.c:944
#14 0x00007fada13aef01 in g_object_run_dispose (object=0x55c9dc422a70) at ../../glib/gobject/gobject.c:1447
#15 0x00007fada17cd370 in meta_backend_destroy (backend=0x55c9dc422a70)
at ../../mutter/src/backends/meta-backend.c:254
#16 0x00007fada1854806 in meta_context_dispose (object=0x55c9dc40efa0) at ../../mutter/src/core/meta-context.c:716
#17 0x00007fada13ad399 in g_object_unref (_object=0x55c9dc40efa0) at ../../glib/gobject/gobject.c:3890
#18 0x000055c9dc1805db in glib_autoptr_clear_GObject (_ptr=0x55c9dc40efa0)
at /opt/dev/GNOME/include/glib-2.0/gobject/gobject-autocleanups.h:29
#19 0x000055c9dc1805fc in glib_autoptr_clear_MetaContext (_ptr=0x55c9dc40efa0)
at ../../mutter/src/meta/meta-context.h:31
#20 0x000055c9dc180619 in glib_autoptr_cleanup_MetaContext (_ptr=0x7fff0af5bf20)
at ../../mutter/src/meta/meta-context.h:31
#21 0x000055c9dc180bb2 in main (argc=1, argv=0x7fff0af5c068) at ../../mutter/src/core/mutter.c:126
In particular, we had a BadWindow
error during XWithdrawWindow
of the x11 stage window because it was unmapped after meta-X11 was closed.
#0 0x00007faa96e91ca8 in display_error_event (x11_display=0x564bd276d110, error=0x7ffd739c76a0)
at ../../mutter/src/x11/meta-x11-errors.c:95
#1 0x00007faa96e91e55 in meta_x_error (xdisplay=0x564bd2173de0, error=0x7ffd739c76a0)
at ../../mutter/src/x11/meta-x11-errors.c:136
#2 0x00007faa963a0974 in _XError (dpy=dpy@entry=0x564bd2173de0, rep=rep@entry=0x564bd24633b0)
at /data/GNOME/xorg/lib/libX11/src/XlibInt.c:1503
#3 0x00007faa9639d497 in handle_error (dpy=0x564bd2173de0, err=0x564bd24633b0, in_XReply=<optimized out>)
at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:211
#4 0x00007faa9639d535 in handle_response (dpy=dpy@entry=0x564bd2173de0, response=0x564bd24633b0,
in_XReply=in_XReply@entry=1) at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:403
#5 0x00007faa9639e67d in _XReply (dpy=dpy@entry=0x564bd2173de0, rep=rep@entry=0x7ffd739c7860,
extra=extra@entry=0, discard=discard@entry=1) at /data/GNOME/xorg/lib/libX11/src/xcb_io.c:722
#6 0x00007faa96399c9f in XSync (dpy=0x564bd2173de0, discard=discard@entry=0)
at /data/GNOME/xorg/lib/libX11/src/Sync.c:44
#7 0x00007faa96399d3f in _XSyncFunction (dpy=<optimized out>) at /data/GNOME/xorg/lib/libX11/src/Synchro.c:35
#8 0x00007faa9639badb in XUnmapWindow (dpy=dpy@entry=0x564bd2173de0, w=w@entry=12582925)
at /data/GNOME/xorg/lib/libX11/src/UnmapWin.c:42
#9 0x00007faa9639c59e in XWithdrawWindow (dpy=0x564bd2173de0, w=12582925, screen=<optimized out>)
at /data/GNOME/xorg/lib/libX11/src/Withdraw.c:70
#10 0x00007faa96e7604c in meta_stage_x11_hide (stage_window=0x564bd2476840)
at ../../mutter/src/backends/x11/meta-stage-x11.c:483
#11 0x00007faa965cb5df in _clutter_stage_window_hide (window=0x564bd2476840)
at ../../mutter/clutter/clutter/clutter-stage-window.c:70
#12 0x00007faa965be120 in clutter_stage_hide (self=0x564bd2475db0)
at ../../mutter/clutter/clutter/clutter-stage.c:608
#13 0x00007faa96982199 in _g_closure_invoke_va (closure=closure@entry=0x564bd24704b0,
return_value=return_value@entry=0x0, instance=instance@entry=0x564bd2475db0, args=args@entry=0x7ffd739c7bc0,
n_params=0, param_types=0x0) at ../../glib/gobject/gclosure.c:895
#14 0x00007faa9699c3f4 in g_signal_emit_valist (instance=0x564bd2475db0, signal_id=80, detail=<optimized out>,
var_args=var_args@entry=0x7ffd739c7bc0) at ../../glib/gobject/gsignal.c:3481
#15 0x00007faa9699c623 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>,
detail=<optimized out>) at ../../glib/gobject/gsignal.c:3631
#16 0x00007faa965345aa in clutter_actor_hide (self=0x564bd2475db0)
at ../../mutter/clutter/clutter/clutter-actor.c:1936
#17 0x00007faa965bf95c in clutter_stage_dispose (object=0x564bd2475db0)
at ../../mutter/clutter/clutter/clutter-stage.c:1215
#18 0x00007faa96988f01 in g_object_run_dispose (object=0x564bd2475db0) at ../../glib/gobject/gobject.c:1447
#19 0x00007faa9653ec6f in clutter_actor_destroy (self=0x564bd2475db0)
at ../../mutter/clutter/clutter/clutter-actor.c:7645
#20 0x00007faa96da7257 in meta_backend_dispose (object=0x564bd2170a30)
at ../../mutter/src/backends/meta-backend.c:242
#21 0x00007faa96e5ef0a in meta_backend_x11_dispose (object=0x564bd2170a30)
at ../../mutter/src/backends/x11/meta-backend-x11.c:944
#22 0x00007faa96988f01 in g_object_run_dispose (object=0x564bd2170a30) at ../../glib/gobject/gobject.c:1447
#23 0x00007faa96da7390 in meta_backend_destroy (backend=0x564bd2170a30)
at ../../mutter/src/backends/meta-backend.c:254
#24 0x00007faa96e2e73f in meta_context_dispose (object=0x564bd215dfa0) at ../../mutter/src/core/meta-context.c:716
#25 0x00007faa96987399 in g_object_unref (_object=0x564bd215dfa0) at ../../glib/gobject/gobject.c:3890
#26 0x0000564bd1ae75db in glib_autoptr_clear_GObject (_ptr=0x564bd215dfa0)
at /opt/dev/GNOME/include/glib-2.0/gobject/gobject-autocleanups.h:29
#27 0x0000564bd1ae75fc in glib_autoptr_clear_MetaContext (_ptr=0x564bd215dfa0)
at ../../mutter/src/meta/meta-context.h:31
#28 0x0000564bd1ae7619 in glib_autoptr_cleanup_MetaContext (_ptr=0x7ffd739c8100)
--Type <RET> for more, q to quit, c to continue without paging--
at ../../mutter/src/meta/meta-context.h:31
#29 0x0000564bd1ae7bb2 in main (argc=1, argv=0x7ffd739c8248) at ../../mutter/src/core/mutter.c:126