Tests of 0.4.30 crash on s390x

Bug #1936901 reported by Christian Ehrhardt 
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
GEGL
Fix Released
Unknown
gegl (Debian)
Fix Released
Unknown
gegl (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

The current version 0.4.30 is FTBFS on s390x.
  https://launchpad.net/ubuntu/+source/gegl/1:0.4.30-1
  https://launchpad.net/ubuntu/+source/gegl/1:0.4.30-1/+build/21795068
  https://launchpadlibrarian.net/549105404/buildlog_ubuntu-impish-s390x.gegl_1%3A0.4.30-1_BUILDING.txt.gz

It comes down to two tests which fail with SIGinvalid

118/249 gegl:composition / hdr_color FAIL 0.67s (exit status 250 or signal 122 SIGinvalid)
150/249 gegl:composition / rgb_params FAIL 0.67s (exit status 250 or signal 122 SIGinvalid)

The errors are (still as of today) not showing up if we re-build / re-tests 0.4.28.
The issue is reproducible on s390x in an impish container.

There are plenty of tests that got added, the old code has 104 while the new one has 249.
So we can't say "it worked in the former version" as that test wasn't present at all back then.

Old:
Ok: 103
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 1
Timeout: 0

New:
Ok: 114
Expected Fail: 0
Fail: 2
Unexpected Pass: 0
Skipped: 133
Timeout: 0

So plenty of the new additions got skipped, but not those two and they fail badly.

FYI this is broken in Debian the very same way
  https://buildd.debian.org/status/fetch.php?pkg=gegl&arch=s390x&ver=1%3A0.4.30-1&stamp=1626634928&raw=0

tags: added: update-excuse
Revision history for this message
Christian Ehrhardt  (paelzer) wrote (last edit ):

Running the individual test still reproduces the issue and is a bit more verbose in regard to warngins/errors

$ LC_ALL=C.UTF-8 MESON_TESTTHREADS=1 meson test rgb_params --print-errorlogs
ninja: Entering directory `/root/gegl-0.4.30/obj-s390x-linux-gnu'
ninja: no work to do.
1/1 gegl:composition / rgb_params FAIL 0.67s (exit status 250 or signal 122 SIGinvalid)

The output from the failed tests:

1/1 gegl:composition / rgb_params FAIL 0.67s (exit status 250 or signal 122 SIGinvalid)

--- command ---
08:12:02 GEGL_USE_OPENCL='no' GEGL_PATH='/root/gegl-0.4.30/obj-s390x-linux-gnu/operations' ABS_TOP_SRCDIR='/root/gegl-0.4.30' ABS_TOP_BUILDDIR='/root/gegl-0.4.30/obj-s390x-linux-gnu' GEGL_SWAP='RAM' /usr/bin/python3 /root/gegl-0.4.30/tests/test-runner.py --test-name rgb-params --output-dir /root/gegl-0.4.30/obj-s390x-linux-gnu/tests/compositions/output --reference-path /root/gegl-0.4.30/tests/compositions/reference --input-file /root/gegl-0.4.30/obj-s390x-linux-gnu/../tests/compositions/rgb-params.xml --gegl-exe bin/gegl --imgcmp-exe tools/gegl-imgcmp
--- stdout ---
Bail out! GEGL:ERROR:../gegl/buffer/gegl-buffer-load.c:289:gegl_buffer_load: assertion failed: (babl_format_get_bytes_per_pixel (info->format) == info->header.bytes_per_pixel)
--- stderr ---

(gegl-imgcmp:51090): GLib-GObject-WARNING **: 08:12:03.394: value "-2147483648" of type 'gint' is invalid or out of range for property 'tile-width' of type 'gint'
**
GEGL:ERROR:../gegl/buffer/gegl-buffer-load.c:289:gegl_buffer_load: assertion failed: (babl_format_get_bytes_per_pixel (info->format) == info->header.bytes_per_pixel)

The assertion is:
GEGL:ERROR:../gegl/buffer/gegl-buffer-load.c:289:gegl_buffer_load: assertion failed: (babl_format_get_bytes_per_pixel (info->format) == info->header.bytes_per_pixel)

Further isolating the test the failing command is actually the img comparison:
GEGL_USE_OPENCL='no' GEGL_PATH='/root/gegl-0.4.30/obj-s390x-linux-gnu/operations' ABS_TOP_SRCDIR='/root/gegl-0.4.30' ABS_TOP_BUILDDIR='/root/gegl-0.4.30/obj-s390x-linux-gnu' GEGL_SWAP='RAM' /root/gegl-0.4.30/obj-s390x-linux-gnu/tools/gegl-imgcmp /root/gegl-0.4.30/tests/compositions/reference/rgb-params.gegl /root/gegl-0.4.30/obj-s390x-linux-gnu/tests/compositions/output/rgb-params.gegl

description: updated
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Download full text (4.4 KiB)

With that we see that the backtrace and values are:

Thread 1 "gegl-imgcmp" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
49 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
#1 0x000003fffd92ad48 in __GI_abort () at abort.c:79
#2 0x000003fffdc26e42 in () at /lib/s390x-linux-gnu/libglib-2.0.so.0
#3 0x000003fffdc26ea6 in g_assertion_message_expr () at /lib/s390x-linux-gnu/libglib-2.0.so.0
#4 0x000003fffdec27e6 in gegl_buffer_load (path=<optimized out>) at ../gegl/buffer/gegl-buffer-load.c:289
#5 0x000003ff872c370a in gegl_buffer_load_op_ensure_buffer (o=0x2aa00222200) at ../operations/common/gegl-buffer-load-op.c:40
#6 gegl_buffer_load_op_ensure_buffer (o=0x2aa00222200) at ../operations/common/gegl-buffer-load-op.c:37
#7 gegl_buffer_load_op_get_bounding_box (operation=<optimized out>) at ../operations/common/gegl-buffer-load-op.c:49
#8 0x000003fffdf03138 in gegl_operation_get_bounding_box (self=self@entry=0x2aa000f1750) at ../gegl/operation/gegl-operation.c:212
#9 0x000003fffdf036dc in gegl_graph_prepare (path=0x2aa0022e100) at ../gegl/process/gegl-graph-traversal.c:191
#10 0x000003fffdf03926 in gegl_eval_manager_prepare (self=0x2aa0022cc00) at ../gegl/process/gegl-eval-manager.c:93
#11 0x000003fffdf039b2 in gegl_eval_manager_get_bounding_box (self=0x2aa0022cc00) at ../gegl/process/gegl-eval-manager.c:102
#12 0x000003fffdeeb386 in gegl_node_get_bounding_box (self=self@entry=0x2aa00129cc0) at ../gegl/graph/gegl-node.c:1844
#13 0x000003fffdeeb58a in gegl_node_property_changed (gobject=<optimized out>, arg1=0x2aa000a4d40, user_data=0x3ffffffe2d0) at ../gegl/graph/gegl-node.c:1376
#14 0x000003fffdb135ce in g_closure_invoke () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#15 0x000003fffdb4653a in () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#16 0x000003fffdb34b18 in g_signal_emit_valist () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#17 0x000003fffdb34dda in g_signal_emit () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#18 0x000003fffdb1d5e6 in () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#19 0x000003fffdb1fe94 in g_object_thaw_notify () at /lib/s390x-linux-gnu/libgobject-2.0.so.0
#20 0x000003fffdeebe70 in gegl_node_set_valist (self=0x2aa00129cc0, first_property_name=<optimized out>, var_args=<optimized out>) at ../gegl/graph/gegl-node.c:1572
#21 0x000003fffdeec2ae in gegl_node_set (self=0x2aa00129cc0, first_property_name=first_property_name@entry=0x3fff818eb58 "path") at ../gegl/graph/gegl-node.c:1468
#22 0x000003fff818d4e6 in do_setup (operation=operation@entry=0x2aa001e3cb0, path=0x2aa001187d0 "/root/gegl-0.4.30/tests/compositions/reference/rgb-params.gegl", uri=0x2aa00225440 "")
    at ../operations/core/load.c:271
#23 0x000003fff818dd26 in attach (operation=0x2aa001e3cb0) at ../operations/core/load.c:301
#24 0x000003fffdf011e0 in gegl_operation_attach (self=0x2aa001e3cb0, node=0x2aa00129980) at ../gegl/operation/gegl-operation.c:321
#25 0x000003fffdeeb904 in gegl_node_set_operation_object (self=self@entry=0x2aa00129980, operation=operation@entry=0x2aa001e3cb0) at ../gegl/graph/g...

Read more...

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The very same on x86 shows a valid header:

(gdb) p info->header.bytes_per_pixel
$1 = 16

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Also reported to Debian since they are affected the same way
  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=991300

Depending on an upstream response we can then consider
a) waiting for a fix as 0.4.30 is broken (real regression) and we
   don't want it to migrate
b) it was always broken, just now the test shows it (=no regression).
   In this case we might consider skipping the tests for now.

Changed in gegl (Ubuntu):
status: New → Confirmed
Changed in gegl (Debian):
status: Unknown → New
Changed in gegl (Debian):
status: New → Confirmed
Revision history for this message
Jeremy Bícha (jbicha) wrote :

This bug was fixed in the package gegl - 1:0.4.32-1

---------------
gegl (1:0.4.32-1) unstable; urgency=medium

  * Team upload
  * New upstream release
  * d/p/tests-Use-endiannness-dependent-reference-GEGL-buffers.patch,
    d/rules, d/clean:
    Avoid trying to load little-endian GEGL buffers on BE architectures
    (Closes: #991300)
  * d/lbgegl-0.4-0.docs: Adjust name of NEWS.adoc
  * d/rules: Enable gtk-doc if necessary
  * d/control.in: Don't depend on gtk-doc-tools under nodoc profile
  * d/libgegl-0.4-0.symbols: Mark private symbols as optional
  * d/p/docs-Don-t-scan-ctx.h-with-gtk-doc.patch:
    Add proposed patch fixing FTBFS with current gtk-doc
  * d/libgegl-doc.docs: Install asciidoc source instead of HTML.
    HTML is no longer provided in the tarball release.

 -- Simon McVittie <email address hidden> Thu, 09 Sep 2021 13:10:11 +0100

Changed in gegl (Ubuntu):
status: Confirmed → Fix Released
Changed in gegl (Debian):
status: Confirmed → Fix Released
Changed in gegl:
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.