Bug 1936339

Summary: glib2 crashes in libgobject since 2.67.3-1.fc34 because of an implicitly enabled debugging code
Product: [Fedora] Fedora Reporter: Petr Pisar <ppisar>
Component: glib2Assignee: Petr Pisar <ppisar>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 34CC: caillon+fedoraproject, gnome-sig, klember, mclasen, rhughes, rstrode, sandmann, tiagomatos
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glib2-2.67.6-2.fc35 glib2-2.67.6-2.fc34 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-20 00:17:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1940388    

Description Petr Pisar 2021-03-08 09:01:01 UTC
After upgrading glib2 from 2.67.1 to 2.67.3, gscan2pdf tests segfault on exiting perl <https://sourceforge.net/p/gscan2pdf/bugs/381/>:

$ xvfb-run -d perl -Ilib t/0601_Dialog_Scan.t:
[...]
#0  0x00007ffff57fd732 in gtk_widget_dispose (object=0x555559c97880) at /usr/src/debug/gtk3-3.24.25-3.fc35.x86_64/gtk/gtkwidget.c:12156
#1  0x00007ffff74e0d84 in g_object_unref () from /lib64/libgobject-2.0.so.0
#2  0x00007ffff75484aa in XS_Glib__Object_DESTROY () from /usr/lib64/perl5/vendor_perl/auto/Glib/Glib.so
#3  0x00007ffff7d34d47 in Perl_pp_entersub () from /lib64/libperl.so.5.32
#4  0x00007ffff7ca825a in Perl_call_sv () from /lib64/libperl.so.5.32
#5  0x00007ffff7d3d230 in S_curse.lto_priv.0 () from /lib64/libperl.so.5.32
#6  0x00007ffff7d3d978 in Perl_sv_clear () from /lib64/libperl.so.5.32
#7  0x00007ffff7d3c862 in Perl_sv_free2 () from /lib64/libperl.so.5.32
#8  0x00007ffff7d368f8 in Perl_sv_clean_objs () from /lib64/libperl.so.5.32
#9  0x00007ffff7ca9722 in perl_destruct () from /lib64/libperl.so.5.32
#10 0x0000555555555324 in main ()

It used to print warnings before:

ok 14 - selecting reverse should automatically limit the max number of pages to scan
GLib-GObject-WARNING **: instance with invalid (NULL) class pointer during global destruction.
GLib-GObject-CRITICAL **: g_signal_emit_valist: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed during global destruction.
GLib-GObject-CRITICAL **: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed during global destruction.

I bisected glib2 to "build: Add glib_debug option" commit <https://gitlab.gnome.org/GNOME/glib/-/commit/670b84ca3068eb4ec584812fad2cdcb8dc35683b> introduced between 2.67.2 and 2.67.3. That commit added a new option which enables debugging code with -DG_ENABLE_DEBUG compiler flag. That macro enables an internal glib debugging code which makes the library more strict and results into a crash instead of a warning (about Gtk misuses Glib references in signal callbacks.)

Now the Fedora part: Because Fedora's %meson macro passes --auto-features=enabled to meson, the new glib_debug option becomes enabled. As a result the gscan2pdf code crashes now.

I recommend disabling the debugging explicitly with -Dglib_debug=disabled option. I believe that the debugging code is not suitable for a production. The latest glib2-2.67.5-1.fc35 also suffer from this.

If you don't have time, I can commit this trivial fix instead of you.

Comment 1 Petr Pisar 2021-03-18 08:07:18 UTC
I see now reaction. I will apply this change.

Comment 2 Fedora Update System 2021-03-18 08:55:36 UTC
FEDORA-2021-303f6623fa has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-303f6623fa

Comment 3 Kalev Lember 2021-03-18 08:56:20 UTC
Thanks, Petr! I went ahead and edited the pending F34 GNOME mega-update to include your new build.

Comment 4 Fedora Update System 2021-03-18 21:45:30 UTC
FEDORA-2021-303f6623fa has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-303f6623fa`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-303f6623fa

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2021-03-18 22:37:39 UTC
FEDORA-2021-303f6623fa has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-303f6623fa

Comment 6 Fedora Update System 2021-03-19 18:45:19 UTC
FEDORA-2021-303f6623fa has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-303f6623fa`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-303f6623fa

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 7 Fedora Update System 2021-03-20 00:17:21 UTC
FEDORA-2021-303f6623fa has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 8 Fedora Update System 2021-03-22 14:37:32 UTC
FEDORA-2021-68db1d7b13 has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-68db1d7b13