Bug#1024438: mutter: autopkgtest regression: segfault in workspace-basic.metatest
Simon McVittie
smcv at debian.org
Sun Dec 18 15:58:06 GMT 2022
Control: retitle -1 mutter: autopkgtest regression: segfault in workspace-basic.metatest
Control: forwarded -1 https://gitlab.gnome.org/GNOME/mutter/-/issues/2559
It looks as though the specific test-case that is segfaulting is
consistently the one after stacking/unmaximize-new-size.metatest, which
should be stacking/workspace-basic.metatest. That's consistent with
Bernhard's backtrace, too.
I was unable to reproduce this in a test VM, with src:mutter rebuilt
from unstable and everything else from testing, but it is reproducible
on my laptop. Perhaps it's only reproducible if mutter has access to
some resource that my ssh login session to my test VM lacks, or perhaps
there's a race condition that makes this timing-dependent?
On Tue, 06 Dec 2022 at 00:54:19 +0100, Bernhard Übelacker wrote:
> #0 0xb7ce33f4 in meta_workspace_index (workspace=0x0) at ../src/core/workspace.c:722
> #1 0xb2e96606 in switch_workspace (plugin=0xe9f200 [MetaDefaultPlugin], from=0, to=1, direction=META_MOTION_RIGHT) at ../src/compositor/plugins/default.c:572
> #2 0xb7c9e3a0 in meta_plugin_manager_switch_workspace (plugin_mgr=0xe9b3e0, from=0, to=1, direction=META_MOTION_RIGHT) at ../src/compositor/meta-plugin-manager.c:272
> #3 0xb7c94a98 in meta_compositor_switch_workspace (compositor=0xc0e9c0 [MetaCompositorNative], from=0xe7a320 [MetaWorkspace], to=0xe7a370 [MetaWorkspace], direction=META_MOTION_RIGHT) at ../src/compositor/compositor.c:682
> #4 0xb7ce5a2f in meta_workspace_activate_with_focus (workspace=0xe7a370 [MetaWorkspace], focus_this=0x0, timestamp=492883) at ../src/core/workspace.c:684
> #5 0xb7ce5c1e in meta_workspace_activate (workspace=0xe7a370 [MetaWorkspace], timestamp=492883) at ../src/core/workspace.c:714
> #6 0x0047d8a5 in test_case_do (error=0xbfeb8408, argv=<optimized out>, argc=<optimized out>, test=0xece680) at ../src/tests/test-runner.c:1068
> #7 run_test (index=<optimized out>, filename=0xac7e20 "/usr/share/mutter-11/tests/stacking/workspace-basic.metatest", context=<optimized out>) at ../src/tests/test-runner.c:1280
This is consistent with what I get. I think the problem here is that
the invariant for a window having a workspace is
window->unmanaging || workspace != NULL || window->on_all_workspaces
but switch_workspace() doesn't account for window->unmanaging being a
possibility.
Please take any further analysis to the upstream bug:
https://gitlab.gnome.org/GNOME/mutter/-/issues/2559
I'm testing a patch that should turn this from a segfault into a non-fatal
warning.
smcv
More information about the pkg-gnome-maintainers
mailing list