1.67.2: Regress test hangs / timeouts on i686
After updating Fedora's gjs package from 1.67.1 to 1.67.2, the Regress test no longer passes on i686 during the package build. The rest of the architectures seem fine. I've bisected this down to:
c5ae872547a93a4c2580882c9d32dff4a4350d84 is the first bad commit
commit c5ae872547a93a4c2580882c9d32dff4a4350d84
Author: Evan Welsh <contact@evanwelsh.com>
Date: Fri Feb 5 21:46:40 2021 -0800
Update to Jasmine 2.9.1
This is the last release before v3, which has
more breaking behavioral changes.
installed-tests/js/jasmine.js | 5291 +++++++++++++++++++++++++++-------------
installed-tests/js/testLang.js | 4 +-
2 files changed, 3591 insertions(+), 1704 deletions(-)
Here's the failing meson test output:
+ xvfb-run -s '-screen 0 1600x1200x24' /usr/bin/meson test -C i686-redhat-linux-gnu --num-processes 48 --print-errorlogs
ninja: Entering directory `/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu'
ninja: no work to do.
1/59 gjs:C / API tests OK 2.54s
2/59 gjs:Scripts / CommandLine OK 2.30s
3/59 gjs:Scripts / Warnings OK 0.55s
4/59 gjs:JS / self OK 0.14s
5/59 gjs:JS / ByteArray OK 0.14s
6/59 gjs:JS / Exceptions OK 0.14s
7/59 gjs:JS / Format OK 0.16s
8/59 gjs:JS / Fundamental OK 0.14s
9/59 gjs:JS / Gettext OK 0.10s
10/59 gjs:JS / GIMarshalling OK 0.40s
11/59 gjs:JS / Gio OK 0.16s
12/59 gjs:JS / GLib OK 0.18s
13/59 gjs:JS / GObject OK 0.15s
14/59 gjs:JS / GObjectClass OK 0.35s
15/59 gjs:JS / GObjectInterface OK 0.20s
16/59 gjs:JS / GObjectValue OK 0.21s
17/59 gjs:JS / GTypeClass OK 0.16s
18/59 gjs:JS / Importer OK 0.15s
19/59 gjs:JS / Introspection OK 0.31s
20/59 gjs:JS / Lang OK 0.17s
21/59 gjs:JS / LegacyByteArray OK 0.16s
22/59 gjs:JS / LegacyClass OK 0.20s
23/59 gjs:JS / LegacyGObject OK 0.30s
24/59 gjs:JS / Mainloop OK 0.24s
25/59 gjs:JS / Namespace OK 0.15s
26/59 gjs:JS / Package OK 0.20s
27/59 gjs:JS / ParamSpec OK 0.15s
28/59 gjs:JS / Print OK 0.15s
30/59 gjs:JS / Signals OK 0.16s
31/59 gjs:JS / System OK 0.19s
32/59 gjs:JS / Tweener OK 0.20s
33/59 gjs:JS / WarnLib OK 0.15s
34/59 gjs:JS / Cairo OK 0.25s
35/59 gjs:JS / Gtk3 OK 0.31s
36/59 gjs:JS / GObjectDestructionAccess OK 0.25s
37/59 gjs:JS / LegacyGtk OK 0.21s
38/59 gjs:dbus / GDBus OK 0.26s
39/59 gjs:JS / ESModules OK 0.21s
40/59 gjs:JS / CairoModule OK 0.16s
41/59 gjs:Debugger / backtrace command OK 0.10s
42/59 gjs:Debugger / breakpoint command OK 0.08s
43/59 gjs:Debugger / continue command OK 0.08s
44/59 gjs:Debugger / delete command OK 0.10s
45/59 gjs:Debugger / detach command OK 0.11s
46/59 gjs:Debugger / down-up command OK 0.07s
47/59 gjs:Debugger / finish command OK 0.11s
48/59 gjs:Debugger / frame command OK 0.10s
49/59 gjs:Debugger / keys command OK 0.10s
50/59 gjs:Debugger / lastvalues command OK 0.08s
51/59 gjs:Debugger / list command OK 0.10s
52/59 gjs:Debugger / next command OK 0.09s
53/59 gjs:Debugger / print command OK 0.09s
54/59 gjs:Debugger / quit command OK 0.08s
55/59 gjs:Debugger / return command OK 0.08s
56/59 gjs:Debugger / set command OK 0.08s
57/59 gjs:Debugger / step command OK 0.08s
58/59 gjs:Debugger / throw command OK 0.08s
59/59 gjs:Debugger / until command OK 0.07s
The output from the failed tests:
29/59 gjs:JS / Regress TIMEOUT 30.02s
--- command ---
23:43:19 GJS_PATH='' TOP_BUILDDIR='/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu' GSETTINGS_SCHEMA_DIR='/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/installed-tests/js' NO_AT_BRIDGE='1' GI_TYPELIB_PATH='/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu:/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/installed-tests/js' LSAN_OPTIONS='fast_unwind_on_malloc=0,exitcode=23,suppressions=/builddir/build/BUILD/gjs-1.67.2/installed-tests/extra/lsan.supp' G_DEBUG='fatal-warnings,fatal-criticals' LC_ALL='C.utf8' G_FILENAME_ENCODING='latin1' GJS_USE_UNINSTALLED_FILES='1' ENABLE_GTK='yes' GSETTINGS_BACKEND='memory' LD_LIBRARY_PATH='/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu:/builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/installed-tests/js' ASAN_OPTIONS='intercept_tls_get_addr=0' /builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/installed-tests/js/minijasmine /builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/../installed-tests/js/testRegress.js
--- Listing only the last 100 lines from a long log. ---
JS G NS: Found info type FUNCTION for 'test_utf8_null_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_gint8_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_gint16_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_gint32_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_gint64_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_strv_in' in namespace 'Regress'
JS CTX: Ignoring second exception: 'Invalid element in string array'
JS G NS: Found info type FUNCTION for 'test_strv_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_strv_out_container' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_strv_outarg' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_gtype_in' in namespace 'Regress'
JS G NS: Found info type OBJECT for 'SimpleAction' in namespace 'Gio'
JS G OBJ: Defined class for SimpleAction (GSimpleAction), prototype 0xea075ba0, JSClass 0xf7ed0200, in object 0xea0751a0
JS G NS: Found info type INTERFACE for 'Icon' in namespace 'Gio'
JS G IFACE: Defined class for Icon (GIcon), prototype 0xe966c0e0, JSClass 0xf7ed06c0, in object 0xea0751a0
JS G NS: Found info type FUNCTION for 'test_array_fixed_size_int_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_fixed_size_int_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_fixed_size_int_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_strv_out_c' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_full_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_none_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_null_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_array_int_null_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_nothing_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_nothing_return2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_container_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_everything_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_nothing_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_nothing_in2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_null_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_null_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_nothing_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_nothing_return2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_container_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_everything_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_nothing_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_nothing_in2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_null_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_gslist_null_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_glist_gtype_container_in' in namespace 'Regress'
JS G NS: Found info type OBJECT for 'TestObj' in namespace 'Regress'
JS G OBJ: Defined class for TestObj (RegressTestObj), prototype 0xea075c00, JSClass 0xf7ed0200, in object 0xea075180
JS G NS: Found info type OBJECT for 'TestSubObj' in namespace 'Regress'
JS G OBJ: Defined class for TestSubObj (RegressTestSubObj), prototype 0xea075c40, JSClass 0xf7ed0200, in object 0xea075180
JS G NS: Found info type FUNCTION for 'test_ghash_null_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nothing_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nothing_return2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_gvalue_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_container_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_everything_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_null_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_null_out' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nothing_in' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nothing_in2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nested_everything_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_ghash_nested_everything_return2' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_garray_container_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_garray_full_return' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_enum_param' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_unsigned_enum_param' in namespace 'Regress'
JS G NS: Found info type ENUM for 'TestEnumUnsigned' in namespace 'Regress'
JS G ENUM: Defining enum value VALUE1 (fixed from value1) 1
JS G ENUM: Defining enum value VALUE2 (fixed from value2) 2147483648
JS G ENUM: Defining Regress.TestEnumUnsigned as 0xea17a698
JS G NS: Found info type FUNCTION for 'global_get_flags_out' in namespace 'Regress'
JS G NS: Found info type STRUCT for 'TestStructA' in namespace 'Regress'
JS G BXD: Defined class for TestStructA (void), prototype 0xea075ca0, JSClass 0xf7ed01d0, in object 0xea075180
JS G BXD: Defining method clone in prototype for Regress.TestStructA
JS G NS: Found info type FUNCTION for 'test_array_struct_out' in namespace 'Regress'
JS G NS: Found info type STRUCT for 'TestStructB' in namespace 'Regress'
JS G BXD: Defined class for TestStructB (void), prototype 0xea075d60, JSClass 0xf7ed01d0, in object 0xea075180
JS G BXD: Defining method clone in prototype for Regress.TestStructB
JS G NS: Found info type STRUCT for 'TestSimpleBoxedA' in namespace 'Regress'
JS G BXD: Defined class for TestSimpleBoxedA (RegressTestSimpleBoxedA), prototype 0xea075e20, JSClass 0xf7ed01d0, in object 0xea075180
JS G BXD: Defining method equals in prototype for Regress.TestSimpleBoxedA
JS G NS: Found info type STRUCT for 'TestSimpleBoxedB' in namespace 'Regress'
JS G BXD: Defined class for TestSimpleBoxedB (RegressTestSimpleBoxedB), prototype 0xea075e80, JSClass 0xf7ed01d0, in object 0xea075180
JS G NS: Found info type STRUCT for 'TestBoxed' in namespace 'Regress'
JS G BXD: Defined class for TestBoxed (RegressTestBoxed), prototype 0xe9689060, JSClass 0xf7ed01d0, in object 0xea075180
JS G BXD: Defining method equals in prototype for Regress.TestBoxed
JS G NS: Found info type FUNCTION for 'test_boxeds_not_a_method' in namespace 'Regress'
JS G NS: Found info type FUNCTION for 'test_boxeds_not_a_static' in namespace 'Regress'
JS G NS: Found info type STRUCT for 'TestBoxedB' in namespace 'Regress'
JS G BXD: Defined class for TestBoxedB (RegressTestBoxedB), prototype 0xe9689100, JSClass 0xf7ed01d0, in object 0xea075180
JS G NS: Found info type STRUCT for 'TestBoxedC' in namespace 'Regress'
JS G BXD: Defined class for TestBoxedC (RegressTestBoxedC), prototype 0xe9689180, JSClass 0xf7ed01d0, in object 0xea075180
JS G NS: Found info type STRUCT for 'TestBoxedD' in namespace 'Regress'
JS G BXD: Defined class for TestBoxedD (RegressTestBoxedD), prototype 0xe96891c0, JSClass 0xf7ed01d0, in object 0xea075180
JS G BXD: Defining method get_magic in prototype for Regress.TestBoxedD
JS G NS: Found info type STRUCT for 'KeyFile' in namespace 'GLib'
JS G BXD: Defined class for KeyFile (GKeyFile), prototype 0xe9689240, JSClass 0xf7ed01d0, in object 0xea075020
JS G BXD: Defining method copy in prototype for Regress.TestSimpleBoxedA
JS G OBJ: Defining method set_bare in prototype for RegressTestObj (Regress.TestObj)
JS G OBJ: Defining method unset_bare in prototype for RegressTestSubObj (Regress.TestSubObj)
JS G NS: Found info type FUNCTION for 'signal_handler_disconnect' in namespace 'GObject'
JS G OBJ: Defining method emit_sig_with_obj in prototype for RegressTestObj (Regress.TestObj)
-------
Summary of Failures:
29/59 gjs:JS / Regress TIMEOUT 30.02s
Ok: 58
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 1
Full log written to /builddir/build/BUILD/gjs-1.67.2/i686-redhat-linux-gnu/meson-logs/testlog.txt
I don't know how to debug this further :) The test failure is easily reproducible here though if you can think of anything to try.
Here's the full build log if it helps: https://kojipkgs.fedoraproject.org//work/tasks/9887/62189887/build.log