testGtk and testLegacyGtk crashes on gnome-3-26 branch
As reported by @yrro in this PR comment:
I'm seeing installed-tests/js/testLegacyGtk.js and installed-tests/js/testGtk.js segfault when I build the gnome-3-26 branch. test-suite.log
In both cases it's minijasmine that segfaults with the same backtrace: minijasmine-28655.txt minijasmine-28723.txt
In the current master, the backtrace is:
(gdb) bt full
#0 0x00007f9515cf2ca7 in g_type_check_instance_is_fundamentally_a (type_instance=type_instance@entry=0x7, fundamental_type=fundamental_type@entry=80) at ../../../../gobject/gtype.c:4023
#1 0x00007f9515cd657d in g_object_remove_toggle_ref (object=0x7, notify=0x7f9513f9ddd0 <wrapped_gobj_toggle_notify(gpointer, GObject*, gboolean)>, data=0x0) at ../../../../gobject/gobject.c:3150
_g_boolean_var_ = <optimized out>
tstack = <optimized out>
found_one = 0
__func__ = "g_object_remove_toggle_ref"
#2 0x00007f9513f9b25a in release_native_object(ObjectInstance*) (priv=0x556a8d738200) at gi/object.cpp:1152
#3 0x00007f9513f9b2b9 in gjs_object_prepare_shutdown() () at gi/object.cpp:1179
iter = <optimized out>
__for_range = std::set with 30 elements = {
[0] = 0x556a8d4fd900,
[1] = 0x556a8d4fd9e0,
[2] = 0x556a8d4fdc80,
[3] = 0x556a8d4fdd60,
[4] = 0x556a8d4fde40,
[5] = 0x556a8d6980a0,
[6] = 0x556a8d698180,
[7] = 0x556a8d698260,
[8] = 0x556a8d698340,
[9] = 0x556a8d698420,
[10] = 0x556a8d698500,
[11] = 0x556a8d6985e0,
[12] = 0x556a8d6986c0,
[13] = 0x556a8d6f9820,
[14] = 0x556a8d6f9900,
[15] = 0x556a8d6f99e0,
[16] = 0x556a8d6f9ac0,
[17] = 0x556a8d6f9ba0,
[18] = 0x556a8d6f9c80,
[19] = 0x556a8d6f9d60,
[20] = 0x556a8d6f9e40,
[21] = 0x556a8d738040,
[22] = 0x556a8d738120,
[23] = 0x556a8d738200,
[24] = 0x556a8d7382e0,
[25] = 0x556a8d7383c0,
[26] = 0x556a8d7384a0,
[27] = 0x556a8d738580,
[28] = 0x556a8d738660,
[29] = 0x556a8d795840
}
#4 0x00007f9513faa960 in gjs_context_dispose(GObject*) (object=<optimized out>) at gjs/context.cpp:243
js_context = 0x556a8d125000 [GjsContext]
#5 0x00007f9515cd1e43 in g_object_unref (_object=0x556a8d125000) at ../../../../gobject/gobject.c:3293
weak_locations = 0x0
object = 0x556a8d125000 [GjsContext]
old_ref = <optimized out>
object = 0x556a8d125000 [GjsContext]
#6 0x0000556a8b258f14 in main(int, char**) (argc=<optimized out>, argv=0x7ffde70f54b8) at installed-tests/minijasmine.cpp:131
coverage_prefix = <optimized out>
coverage_output_path = <optimized out>
search_path = {0x556a8b259218 "resource:///org/gjs/jsunit",
0x0}
cx = 0x556a8d125000 [GjsContext]
coverage = <optimized out>
error = 0x0
success = <optimized out>
code = 0
start_suite_script = 0x556a8b259310 "const GLib = imports.gi.GLib;\nGLib.idle_add(GLib.PRIORITY_DEFAULT, function () {\n try {\n window._jasmineEnv.execute();\n } catch (e) {\n print('Bail out! Exception occurred inside Ja"...