GNOME Bugzilla – Bug 794740
>=2.54.3 SIGSEGV libgobject-2.0.so.0 g_type_check_instance_is_fundamentally_a in Ardour (<2.54.2 fine)
Last modified: 2018-04-03 18:14:17 UTC
Created attachment 370217 [details] Ardour GDB Backtrace of SIGSEGV I wanted to log this here in case the issue stems from recent glib changes instead of improper handling by Ardour. Related bug-report for Ardour: http://tracker.ardour.org/view.php?id=7543 glib versions 2.54.2 and below work with Ardour 5.12 and 6.0-pre0, however any later version starting at 2.54.3 cause a SIGSEGV core dump when using "Automation." Myself and other affected users are all running Arch Linux, but I'm assuming the only correlation there is that Arch keeps glib and other libraries up-to-date much more freqently than other systems running Ardour. I've attached a backtrace from the coredump, and I'm pasting portions of it here that I think are relevant: Program terminated with signal SIGSEGV, Segmentation fault.
+ Trace 238515
Thread 1 (Thread 0x7fcba2cf5940 (LWP 1468))
Thanks for taking the time to report this. Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols? Please see https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces for more information on how to do so and reopen this bug report. Thanks in advance!
(In reply to Cameron from comment #0) > glib versions 2.54.2 and below work with Ardour 5.12 and 6.0-pre0, however > any later version starting at 2.54.3 cause a SIGSEGV core dump when using > "Automation." Are you sure 2.56.0 is broken too? 2.54.3 is a known-bad release and I'm surprised to see there was never a 2.54.4, that's not good.
First, thank you for your time. Unfortunately, yes I seemed to have the same issue as reported with 2.56.0 installed. I just noticed this issue and found that bug report from January; it explains my exact symptoms and the stack traces are very similar at a glance. I don't have a cached version of 2.54.4, but it's possible that I delayed updating this machine and 2.56.0 was released during that time. At the moment I'm on a fully updated Arch system with this glib2: local/glib2 2.56.0+7+g66948ae23-1 I've setup a debugging-enabled glib2 package based on the Arch wiki link found through your link. Basically, I used the normal PKGBUILD for this package but added "debug !strip" into the options. Fortunately... it worked! I know I was using 2.56.0 before because I ran ldd on the binary during my research. Something about building glib2 on my machine instead of using the distribution package seems to have resolved this. Now I wonder if the issue was with the packaging. In any case, this is not meaningfully reproducible. You somehow led me to a solution, so thanks again!
Actually, this is reproducible. Building the same package without debugging support causes the issue still. If you have any idea how we can debug this build where enabling debugging fixes the issue, please advise lol The only changes in the build process should be: Add: -g -fvar-tracking-assignments Remove: --strip-debug --strip-unneeded More specifically, building and installing the following PKGBUILD with and without the following patch are enough to cause the issue: https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/glib2 index 1d18bca..a689920 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -14,7 +14,7 @@ makedepends=(gettext gtk-doc shared-mime-info python libelf git util-linux dbus) checkdepends=(desktop-file-utils) optdepends=('python: gdbus-codegen, glib-genmarshal, glib-mkenums, gtester-report' 'libelf: gresource inspection tool') -options=(!emptydirs) +options=(debug !strip !emptydirs) _commit=66948ae231f75a548c8a2eb7b3a9d64cfd728b8e # glib-2-56 source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit" noisy-glib-compile-schemas.diff
As someone else with this issue, I thought I might chime in with some testing I've done. I reproduced the issue on Arch (as documented in the Ardour bug tracker link) with Ardour 6.0-pre0 (compiled with debug symbols) and glib 2.56 (compiled w/o debug symbols). Ardour crashed. Backtrace from gdb is attached (mocha_ardour_backtrace). I then compiled glib 2.56 with debug symbols, as described by Cameron with the `debug !strip` options in the PKGBUILD. Using glib 2.56 w/ debug symbols, the issue did not occur. Output from that test is attached (mocha_ardour_nocrash_output). However, I also tested this issue in a VM running Ubuntu 18.04 (with libglib2.0-0 ver. 2.56.0-2ubuntu1), and the issue could not be reproduced, even though glib libraries had no debug symbols. Given that the issue IS present in Arch with glib having debug symbols stripped, and the issue is NOT present in Ubuntu with glib also having no debug symbols, my tentative conclusion is that this is an issue on Arch's end, perhaps with makepkg's stripping procedure, and not an issue with glib.
Created attachment 370229 [details] backtrace with glib 2.56 (symbols stripped)
Created attachment 370230 [details] terminal output with glib 2.56 (symbols not stripped; program did not crash)
After some further testing, it turns out the crash in Ardour has nothing to do with whether or not glib had its debug symbols stripped. Ardour crashes (on glib >=2.54.3, at least) when glib is compiled with `./configuration --enable-debug=yes`, probably regardless of distro. (Arch was just setting this option to "yes" in the PKGBUILD when makepkg's debug option was disabled, for whatever reason.) The question remains of why Ardour is crashing when glib has runtime debugging enabled, but otherwise, this is an issue with Arch's PKGBUILD file, because --enable-debug should probably be set to "minimum" on stable releases of glib2 anyway.
Nice investigation! (In reply to Nathan from comment #8) > Ardour crashes (on glib >=2.54.3, at least) when glib is compiled with > `./configuration --enable-debug=yes`, probably regardless of distro. (Arch > was just setting this option to "yes" in the PKGBUILD when makepkg's debug > option was disabled, for whatever reason.) So then you should be able to post a backtrace with debug symbols after all, right? :) Moving back to NEEDINFO.... I suspect the crash with --enable-debug=yes is going to be the same as the crash that would occur if you ran with --enable-debug=minimal and G_DEBUG=fatal-criticals. (In reply to Nathan from comment #8) > this is an issue with Arch's PKGBUILD > file, because --enable-debug should probably be set to "minimum" on stable > releases of glib2 anyway. Definitely, that's worth a bug report to Arch.
I've attached two backtraces: * one with glib 2.56 compiled with --enable-debug=yes, without debug symbols stripped (i.e. what you asked for) * another with glib 2.56 compiled with --enable-debug=minimum, without symbols stripped, and Ardour run with the env var G_DEBUG=fatal-criticals Looks like your guess was pretty accurate, if I'm reading those backtraces right.
Created attachment 370263 [details] backtrace: --enable-debug=yes; w/ debug symbols
Created attachment 370265 [details] backtrace: --enable-debug=minimum; w/ debug symbols; G_DEBUG=fatal-criticals
So now you don't need to recompile GLib, at least! It's missing the key frames, though, inside libgtk-x11-2.0.so.0. Please install debuginfo for that as well.
Regarding Comment 8 aka https://bugzilla.gnome.org/show_bug.cgi?id=794740#c8 I'm on ArchLinux too and I've encountered the following issue https://bugzilla.xfce.org/show_bug.cgi?id=14320#c7 which makes me believe this is related: xfce4-taskmanager crashed upon exit because glib2 was compiled with --enable-debug=yes instead of --enable-debug=minimum ; in the latter case it doesn't crash. (In reply to Michael Catanzaro from comment #9) > I suspect the crash with --enable-debug=yes is going to be the same as the > crash that would occur if you ran with --enable-debug=minimal and > G_DEBUG=fatal-criticals. > not for me: With --enable-debug=minimum glib2 and then: $ export G_DEBUG=fatal-criticals; gdb xfce4-taskmanager no crash upon xfce4-taskmanager exit; (or I don't know how to use that G_DEBUG=fatal-criticals properly?)
Try: $ G_DEBUG=fatal-criticals gdb xfce4-taskmanager Anyway, this is still missing a complete stacktrace. Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment. Thanks!