Re: Bug#1077192: gtk4: Test regression in 4.14 on s390x: assertion failure in 3 gsk tests

Simon McVittie <[email protected]>
Newsgroups gmane.linux.debian.ports.s390
Message-ID <[email protected]>
Control: retitle -1 gtk4: Test regression in 4.14 on s390x: assertion failure in 3 gsk tests
Control: severity -1 serious
Control: tags -1 + experimental
Control: block 1072395 by -1

As with other test regressions, this is RC for experimental and is blocking
re-upload of 4.14.x to unstable. Its severity can be downgraded if we find
a workaround.

I think the three gsk tests that crash with an assertion failure are the
most serious thing here - they're the part of this that is RC.

On Fri, 26 Jul 2024 at 16:03:30 +0200, Matthias Geiger wrote:
>  99/666 gtk:gsk / path-special-cases                                                 ERROR            0.06s   killed by signal 6 SIGABRT

> 102/666 gtk:gsk / curve-special-cases                                                ERROR            0.05s   killed by signal 6 SIGABRT

> 106/666 gtk:gsk / path-private                                                       ERROR            0.06s   killed by signal 6 SIGABRT
> 
> To it looks like those three tests segfault.

No, they're crashing with an assertion failure (looks like the same
assertion failure in all three cases):

not ok /path/rotated-arc - Gsk:ERROR:../../../gsk/gskpathopprivate.h:67:gsk_pathop_encode: assertion failed: ((GPOINTER_TO_SIZE (pts) & GSK_PATHOP_OPERATION_MASK) == 0)

not ok /curve/special/circle - Gsk:ERROR:../../../gsk/gskpathopprivate.h:67:gsk_pathop_encode: assertion failed: ((GPOINTER_TO_SIZE (pts) & GSK_PATHOP_OPERATION_MASK) == 0)

not ok /path/circle/winding - Gsk:ERROR:../../../gsk/gskpathopprivate.h:67:gsk_pathop_encode: assertion failed: ((GPOINTER_TO_SIZE (pts) & GSK_PATHOP_OPERATION_MASK) == 0)

I can reproduce this by rebuilding gtk4 on the s390x porterbox, zelenka.

This is potentially related to
https://gitlab.gnome.org/GNOME/gtk/-/issues/6395 in which a similar
assertion failure was seen on 32-bit little-endian architectures (it
appears that a maintainer worked around this by skipping those tests
without reporting a downstream bug, so maybe gtk4 is already broken on
32-bit in practice; I don't know).

Upstream's CI only has 64-bit little-endian, so any architecture that is
32-bit or big-endian should be considered to be "at risk".

> Furthermore, some reftests
> fail because the colours diff (see attached images).

This is a bug, but the affected reftests are already skipped on s390x.
See also <https://bugs.debian.org/1058740>.

It is very likely that these colour issues are because s390x is the only
remaining big-endian release architecture in Debian: upstream does not
have any big-endian machines in their CI infrastructure, and as a result
does not test on big-endian architectures. If users of big-endian
architectures want this to be fixed, it's up to the relevant porters to
figure out which layer is wrong (maybe GTK, maybe a dependency) and
correct the interpretation of in-memory data.

> - border-image-excess: the corners are pink instead of green

This is maybe the same issue that's already tracked in #1024391.

> - gradient-hard-stop: the bottom is grey when it should be yellow
> - linear-gradient: adds some colors which shoudl not be present
> - background-blend-mode: the red and yellow half is missing from the
>   output

I'm not aware of us having separate bug reports to track these, but maybe
we should. I think they're out of scope for this RC bug, since we already
ignore the results of these reftests on s390x.

    smcv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.