clutter-conform timeline test is flaky
Affected version
GNU Guix
Git checkout:
repository: $HOME/local-guix-checkout
branch: master
commit: b3a2c79fdc4ec3794639808c1161870341f175a6
Attempting to package mutter 41.3 with the following diff:
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e3fac534c4..609c7b799e 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7411,7 +7411,7 @@ (define-public zenity
(define-public mutter
(package
(name "mutter")
- (version "41.0")
+ (version "41.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7419,7 +7419,7 @@ (define-public mutter
name "-" version ".tar.xz"))
(sha256
(base32
- "17pqrm48kddqrc3fl96n5knhaxyn0crg0zv7zpmqhk848jks307s"))))
+ "1rbphjvc8vrnqgb3py3xgqcwg8xiazxqdd23lqdmqq7bc085v73i"))))
;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
;; versions of cogl and clutter. As a result, many of the inputs,
;; propagated-inputs, and configure flags used in cogl and clutter are
Clutter version 1.26.2
Running test suite with Xvfb.
Bug summary
With Mutter 41.3, the test suite fails, printing one error. With Mutter 41.0 (i.e. without the above patch), the timeline test appears to run "forever" (I have observed it run for several days for some time, see https://issues.guix.gnu.org/53559)
Steps to reproduce
With the above diff applied, run guix build mutter
. For 41.0, use --no-substitutes
to disable substitute fetching (it apparently builds fine in CI).
Alternatively, applying the test setup from gitlab-ci.yml locally should also yield the same results (perhaps hardware makes a difference?).
What happened
Test 70/107 mutter:clutter+clutter/conform / timeline
fails.
What did you expect to happen
The test suite passes.
Relevant logs, screenshots, screencasts etc.
70/107 mutter:clutter+clutter/conform / timeline RUNNING
>>> MALLOC_PERTURB_=55 G_ENABLE_DIAGNOSTIC=0 G_TEST_BUILDDIR=/tmp/guix-build-mutter-41.3.drv-0/build/src/tests/clutter/conform G_TEST_SRCDIR=/tmp/guix-build-mutter-41.3.drv-0/mutter-41.3/src/tests/clutter/conform MUTTER_TEST_PLUGIN_PATH=/tmp/guix-build-mutter-41.3.drv-0/build/src/compositor/plugins/libdefault.so CLUTTER_SCALE=1 CLUTTER_ENABLE_DIAGNOSTIC=0 /tmp/guix-build-mutter-41.3.drv-0/mutter-41.3/src/tests/meta-dbus-runner.py /tmp/guix-build-mutter-41.3.drv-0/build/src/tests/clutter/conform/timeline
――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
# random seed: R02Sd7e7d74916dad1344e8c9719b6471472
# mutter-MESSAGE: Running Mutter Test (using mutter 41.3) as a Wayland display server
mutter-Message: 20:01:04.168: Running Mutter Test (using mutter 41.3) as a Wayland display server
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation memory (GMemorySettingsBackend) for ‘gsettings-backend’
# mutter-DEBUG: Getting the X screen
# mutter-DEBUG: X Display ':99'[0x46fd60] opened (screen:0, root:1293, dpi:96.000000)
Failed to create //.cache for shader cache (Permission denied)---disabling.
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 2
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 2
# mutter-DEBUG: Created device 'Virtual core pointer' (id: 2, has-cursor: yes)
# mutter-DEBUG: Created device 'Virtual core keyboard' (id: 3, has-cursor: no)
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 4
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 4
# mutter-DEBUG: Created device 'Virtual core XTEST pointer' (id: 4, has-cursor: no)
# mutter-DEBUG: Created device 'Virtual core XTEST keyboard' (id: 5, has-cursor: no)
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 6
# mutter-DEBUG: Added axis 'Abs X' (min:-1.00, max:-1.00d, res:0) of device 6
# mutter-DEBUG: Created device 'Xvfb mouse' (id: 6, has-cursor: no)
# mutter-DEBUG: Created device 'Xvfb keyboard' (id: 7, has-cursor: no)
# GLib-GIO-DEBUG: _g_io_module_get_default: Found default implementation local (GLocalVfs) for ‘gio-vfs’
# mutter-DEBUG: WL: loaded /gnu/store/7s26hkjvabn0gzkr4y18gvxy1q4hzak4-egl-wayland-1.1.9/lib/libnvidia-egl-wayland.so.1:wl_eglstream_controller.
# mutter-MESSAGE: Using Wayland display name 'mutter-test-display'
mutter-Message: 20:01:04.404: Using Wayland display name 'mutter-test-display'
Window manager warning: Failed to set environment variable WAYLAND_DISPLAY for gnome-session: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.SessionManager" does not exist
1..2
# Start of timeline tests
Without delay...
# mutter-DEBUG: ConfigureNotify[200005] (800, 600)
# mutter-DEBUG: expose for stage: win:0x200005 - redrawing area (x: 0, y: 0, width: 800, height: 600)
# mutter-DEBUG: expose for stage: win:0x200005 - redrawing area (x: 0, y: 0, width: 800, height: 600)
# mutter-INFO: Acquired name org.gnome.Mutter.RemoteDesktop
# mutter-INFO: Acquired name org.gnome.Mutter.ScreenCast
3: Doing frame 10, delta = 0
2: Doing frame 0, delta = 0
1: Doing frame 0, delta = 0
3: Doing frame 8, delta = 408
3: Marker 'baz' (1333) reached, delta = 408
3: Marker 'start-marker' (1666) reached, delta = 408
2: Doing frame 2, delta = 408
2: Marker 'bar' (333) reached, delta = 408
1: Doing frame 2, delta = 408
1: Marker 'start-marker' (0) reached, delta = 408
3: Doing frame 7, delta = 13
2: Doing frame 3, delta = 13
1: Doing frame 3, delta = 13
3: Doing frame 7, delta = 16
2: Doing frame 3, delta = 16
1: Doing frame 3, delta = 16
3: Doing frame 7, delta = 67
2: Doing frame 3, delta = 67
1: Doing frame 3, delta = 67
3: Doing frame 7, delta = 17
2: Doing frame 3, delta = 17
1: Doing frame 3, delta = 17
3: Doing frame 7, delta = 16
2: Doing frame 3, delta = 16
1: Doing frame 3, delta = 16
3: Doing frame 7, delta = 17
2: Doing frame 3, delta = 17
1: Doing frame 3, delta = 17
3: Doing frame 7, delta = 16
2: Doing frame 3, delta = 16
1: Doing frame 3, delta = 16
3: Doing frame 6, delta = 17
2: Doing frame 4, delta = 17
1: Doing frame 4, delta = 17
3: Doing frame 6, delta = 17
2: Doing frame 4, delta = 17
1: Doing frame 4, delta = 17
3: Doing frame 6, delta = 16
2: Doing frame 4, delta = 16
1: Doing frame 4, delta = 16
3: Doing frame 6, delta = 18
2: Doing frame 4, delta = 18
1: Doing frame 4, delta = 18
3: Doing frame 6, delta = 16
2: Doing frame 4, delta = 16
1: Doing frame 4, delta = 16
3: Doing frame 6, delta = 17
2: Doing frame 4, delta = 17
1: Doing frame 4, delta = 17
3: Doing frame 6, delta = 16
2: Doing frame 4, delta = 16
1: Doing frame 4, delta = 16
3: Doing frame 6, delta = 17
2: Doing frame 4, delta = 17
1: Doing frame 4, delta = 17
3: Doing frame 6, delta = 16
2: Doing frame 4, delta = 16
1: Doing frame 4, delta = 16
3: Doing frame 6, delta = 17
2: Doing frame 4, delta = 17
1: Doing frame 4, delta = 17
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 5, delta = 16
2: Doing frame 5, delta = 16
1: Doing frame 5, delta = 16
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 5, delta = 17
3: Marker 'foo' (833) reached, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
1: Marker 'baz' (833) reached, delta = 17
1: Marker 'bar' (833) reached, delta = 17
1: Marker 'foo' (833) reached, delta = 17
3: Doing frame 5, delta = 16
2: Doing frame 5, delta = 16
1: Doing frame 5, delta = 16
3: Doing frame 5, delta = 16
2: Doing frame 5, delta = 16
1: Doing frame 5, delta = 16
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 5, delta = 17
2: Doing frame 5, delta = 17
1: Doing frame 5, delta = 17
3: Doing frame 4, delta = 16
2: Doing frame 6, delta = 16
1: Doing frame 6, delta = 16
3: Doing frame 4, delta = 18
2: Doing frame 6, delta = 18
1: Doing frame 6, delta = 18
3: Doing frame 4, delta = 16
2: Doing frame 6, delta = 16
1: Doing frame 6, delta = 16
3: Doing frame 4, delta = 17
2: Doing frame 6, delta = 17
1: Doing frame 6, delta = 17
3: Doing frame 4, delta = 16
2: Doing frame 6, delta = 16
1: Doing frame 6, delta = 16
3: Doing frame 4, delta = 17
2: Doing frame 6, delta = 17
1: Doing frame 6, delta = 17
3: Doing frame 4, delta = 16
2: Doing frame 6, delta = 16
1: Doing frame 6, delta = 16
3: Doing frame 4, delta = 17
2: Doing frame 6, delta = 17
1: Doing frame 6, delta = 17
3: Doing frame 4, delta = 17
2: Doing frame 6, delta = 17
1: Doing frame 6, delta = 17
3: Doing frame 4, delta = 17
2: Doing frame 6, delta = 17
1: Doing frame 6, delta = 17
3: Doing frame 3, delta = 17
2: Doing frame 7, delta = 17
1: Doing frame 7, delta = 17
3: Doing frame 3, delta = 16
2: Doing frame 7, delta = 16
1: Doing frame 7, delta = 16
3: Doing frame 3, delta = 17
2: Doing frame 7, delta = 17
1: Doing frame 7, delta = 17
3: Doing frame 3, delta = 16
2: Doing frame 7, delta = 16
1: Doing frame 7, delta = 16
3: Doing frame 3, delta = 17
2: Doing frame 7, delta = 17
1: Doing frame 7, delta = 17
3: Doing frame 3, delta = 16
2: Doing frame 7, delta = 16
1: Doing frame 7, delta = 16
3: Doing frame 3, delta = 18
2: Doing frame 7, delta = 18
1: Doing frame 7, delta = 18
3: Doing frame 3, delta = 16
2: Doing frame 7, delta = 16
1: Doing frame 7, delta = 16
3: Doing frame 3, delta = 16
2: Doing frame 7, delta = 16
1: Doing frame 7, delta = 16
3: Doing frame 3, delta = 17
2: Doing frame 7, delta = 17
1: Doing frame 7, delta = 17
3: Doing frame 2, delta = 17
2: Doing frame 8, delta = 17
1: Doing frame 8, delta = 17
3: Doing frame 2, delta = 16
2: Doing frame 8, delta = 16
1: Doing frame 8, delta = 16
3: Doing frame 2, delta = 18
2: Doing frame 8, delta = 18
1: Doing frame 8, delta = 18
3: Doing frame 2, delta = 16
2: Doing frame 8, delta = 16
1: Doing frame 8, delta = 16
3: Doing frame 2, delta = 17
2: Doing frame 8, delta = 17
1: Doing frame 8, delta = 17
3: Doing frame 2, delta = 16
2: Doing frame 8, delta = 16
1: Doing frame 8, delta = 16
3: Doing frame 2, delta = 17
2: Doing frame 8, delta = 17
1: Doing frame 8, delta = 17
3: Doing frame 2, delta = 17
2: Doing frame 8, delta = 17
1: Doing frame 8, delta = 17
3: Doing frame 2, delta = 16
2: Doing frame 8, delta = 16
1: Doing frame 8, delta = 16
3: Doing frame 2, delta = 17
2: Doing frame 8, delta = 17
1: Doing frame 8, delta = 17
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 1, delta = 16
2: Doing frame 9, delta = 16
1: Doing frame 9, delta = 16
3: Doing frame 1, delta = 16
2: Doing frame 9, delta = 16
1: Doing frame 9, delta = 16
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 1, delta = 17
3: Marker 'near-end-marker' (166) reached, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
1: Marker 'near-end-marker' (1500) reached, delta = 17
3: Doing frame 1, delta = 16
2: Doing frame 9, delta = 16
1: Doing frame 9, delta = 16
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 1, delta = 17
2: Doing frame 9, delta = 17
1: Doing frame 9, delta = 17
3: Doing frame 0, delta = 16
2: Doing frame 10, delta = 16
1: Doing frame 10, delta = 16
3: Doing frame 0, delta = 17
2: Doing frame 10, delta = 17
1: Doing frame 10, delta = 17
3: Doing frame 0, delta = 17
2: Doing frame 10, delta = 17
1: Doing frame 10, delta = 17
3: Doing frame 0, delta = 17
2: Doing frame 10, delta = 17
1: Doing frame 10, delta = 17
3: Doing frame 0, delta = 16
2: Doing frame 10, delta = 16
1: Doing frame 10, delta = 16
3: Doing frame 0, delta = 17
3: Marker 'end-marker' (0) reached, delta = 17
3: Completed
2: Doing frame 10, delta = 17
2: Completed
1: Doing frame 10, delta = 17
1: Marker 'end-marker' (1666) reached, delta = 17
1: Completed
FAIL: missed 1 frame for timeline 1
**
Clutter-Conform:ERROR:../mutter-41.3/src/tests/clutter/conform/timeline.c:282:timeline_base: assertion failed: (check_timeline (timeline_1, &data_1, TRUE))
Bail out! Clutter-Conform:ERROR:../mutter-41.3/src/tests/clutter/conform/timeline.c:282:timeline_base: assertion failed: (check_timeline (timeline_1, &data_1, TRUE))
Traceback (most recent call last):
File "/tmp/guix-build-mutter-41.3.drv-0/mutter-41.3/src/tests/meta-dbus-runner.py", line 126, in <module>
test_case.wrap_call(sys.argv[1:])
File "/tmp/guix-build-mutter-41.3.drv-0/mutter-41.3/src/tests/meta-dbus-runner.py", line 118, in wrap_call
self.assertEqual(p.wait(), 0)
File "/gnu/store/b6j1qw1a5rkbfvcy7lc9fm95abbzpa4x-python-3.9.9/lib/python3.9/unittest/case.py", line 837, in assertEqual
assertion_func(first, second, msg=msg)
File "/gnu/store/b6j1qw1a5rkbfvcy7lc9fm95abbzpa4x-python-3.9.9/lib/python3.9/unittest/case.py", line 830, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: -6 != 0
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
70/107 mutter:clutter+clutter/conform / timeline FAIL 3.85s exit status 1