gnucash coredump after 42.2 -> 42.3 upgrade

I upgraded from 42.2 to 42.3 a couple of weeks ago - now gnucash won’t run; it coredumps on startup :frowning: There are no pending updates, and the only non-standard repo I have is Packman. I can still access the gnucash data file from another system (Windows) with no problems.

> zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                            | Name                              | Enabled | GPG Check | Refresh
---+----------------------------------+-----------------------------------+---------+-----------+--------
 1 | Gnome_Apps                       | Gnome Apps                        | Yes     | (r ) Yes  | Yes    
 2 | OpenCPN                          | Application:Geo:OpenCPN           | No      | ----      | ----   
 3 | Packman                          | Packman Repository                | Yes     | (r ) Yes  | Yes    
 4 | google-earth                     | google-earth                      | No      | ----      | ----   
 5 | http-opensuse-guide.org-0aa9fdca | libdvdcss repository              | No      | ----      | ----   
 6 | repo-debug                       | openSUSE_Leap_42.3-Debug          | Yes     | (r ) Yes  | Yes    
 7 | repo-debug-update                | openSUSE_Leap_42.3-Update-Debug   | Yes     | (r ) Yes  | Yes    
 8 | repo-oss                         | openSUSE_Leap_42.3-Oss            | Yes     | (r ) Yes  | Yes    
 9 | repo-source                      | openSUSE_Leap_42.3-Source         | Yes     | (r ) Yes  | Yes    
10 | repo-update                      | openSUSE_Leap_42.3-Update         | Yes     | (r ) Yes  | Yes    
11 | repo-update-non-oss              | openSUSE_Leap_42.3-Update-non-oss | Yes     | (r ) Yes  | Yes    

> zypper se -v --provides -x /usr/bin/gnucash
Loading repository data...
Reading installed packages...

S  | Name    | Type    | Version     | Arch   | Repository            
---+---------+---------+-------------+--------+-----------------------
i+ | gnucash | package | 2.6.18-98.1 | x86_64 | Gnome Apps            
    filelist: /usr/bin/gnucash
v  | gnucash | package | 2.6.16-4.1  | x86_64 | openSUSE_Leap_42.3-Oss
    filelist: /usr/bin/gnucash
i+ | gnucash | package | 2.6.18-98.1 | x86_64 | (System Packages)     
    filelist: /usr/bin/gnucash

If I “upgrade” to the GNOME version, it crashes the same way.
If I open a new blank data file, it works with either version.

CRITICAL NOTE: The 2.6.16-98.1 version worked correctly on LEAP 42.2 - that’s the version I was running prior to the upgrade

How can we debug this?

Dan

======== Trace =============
gnucash
Found Finance::Quote version 1.37
*** Error in `gnucash’: double free or corruption (out): 0x00007ffc2cc912d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x721af)[0x7f1253ea11af]
/lib64/libc.so.6(+0x77706)[0x7f1253ea6706]
/lib64/libc.so.6(+0x78453)[0x7f1253ea7453]
/usr/lib64/java-1_8_0-openjdk-plugin/lib/IcedTeaPlugin.so(+0xe439)[0x7f11ca07e439]
/usr/lib64/java-1_8_0-openjdk-plugin/lib/IcedTeaPlugin.so(NP_Initialize+0x1bca)[0x7f11ca08e4da]
/usr/lib64/libwebkitgtk-1.0.so.0(+0x13ebcd2)[0x7f124e22acd2]
/usr/lib64/libwebkitgtk-1.0.so.0(+0x13ebe2c)[0x7f124e22ae2c]
/usr/lib64/libwebkitgtk-1.0.so.0(+0xbb6f57)[0x7f124d9f5f57]
/usr/lib64/libwebkitgtk-1.0.so.0(+0xbb2d29)[0x7f124d9f1d29]
/usr/lib64/libwebkitgtk-1.0.so.0(+0xbb3478)[0x7f124d9f2478]
/usr/lib64/libwebkitgtk-1.0.so.0(+0x463a2e)[0x7f124d2a2a2e]
/usr/lib64/libwebkitgtk-1.0.so.0(+0xb8ffd7)[0x7f124d9cefd7]
/usr/lib64/libwebkitgtk-1.0.so.0(+0x4888d3)[0x7f124d2c78d3]
/usr/lib64/libwebkitgtk-1.0.so.0(+0x489859)[0x7f124d2c8859]
/usr/lib64/libgobject-2.0.so.0(g_type_create_instance+0x1eb)[0x7f1251ecf63b]
/usr/lib64/libgobject-2.0.so.0(+0x1594d)[0x7f1251eb394d]
/usr/lib64/libgobject-2.0.so.0(g_object_newv+0x22d)[0x7f1251eb545d]
/usr/lib64/libgobject-2.0.so.0(g_object_new+0xec)[0x7f1251eb5c0c]
/usr/lib64/libwebkitgtk-1.0.so.0(webkit_web_view_new+0x22)[0x7f124d2c4482]
/usr/lib64/gnucash/libgncmod-html.so(+0x7aa0)[0x7f1252f8caa0]
/usr/lib64/libgobject-2.0.so.0(g_type_create_instance+0x1eb)[0x7f1251ecf63b]
/usr/lib64/libgobject-2.0.so.0(+0x1594d)[0x7f1251eb394d]
/usr/lib64/libgobject-2.0.so.0(g_object_newv+0x22d)[0x7f1251eb545d]
/usr/lib64/libgobject-2.0.so.0(g_object_new+0xec)[0x7f1251eb5c0c]
/usr/lib64/gnucash/libgncmod-html.so(gnc_html_webkit_new+0x12)[0x7f1252f8eb92]
/usr/lib64/gnucash/libgncmod-report-gnome.so(+0xf36a)[0x7f12535c036a]
/usr/lib64/gnucash/libgncmod-gnome-utils.so(gnc_plugin_page_create_widget+0x71)[0x7f1255d00881]
/usr/lib64/gnucash/libgncmod-gnome-utils.so(gnc_main_window_open_page+0x1bd)[0x7f1255cfaabd]
/usr/lib64/gnucash/libgncmod-gnome-utils.so(gnc_main_window_restore_all_windows+0x1217)[0x7f1255cfc1c7]
/usr/lib64/libgnc-gnome.so.0(+0x7e698)[0x7f1256004698]
/usr/lib64/gnucash/libgncmod-engine.so(+0x6716e)[0x7f125579216e]
/usr/lib64/libglib-2.0.so.0(g_hook_list_marshal+0x84)[0x7f125442c084]
/usr/lib64/gnucash/libgncmod-engine.so(gnc_hook_run+0x99)[0x7f12557936e9]
/usr/lib64/gnucash/libgncmod-gnome-utils.so(+0x6e646)[0x7f1255cee646]
gnucash[0x402f91]
/usr/lib64/libguile-2.0.so.22(+0x8624d)[0x7f1254dbe24d]
/usr/lib64/libguile-2.0.so.22(+0x6011a)[0x7f1254d9811a]
/usr/lib64/libguile-2.0.so.22(+0xf1a00)[0x7f1254e29a00]
/usr/lib64/libguile-2.0.so.22(scm_call_4+0x33)[0x7f1254da16f3]
/usr/lib64/libguile-2.0.so.22(+0x6084f)[0x7f1254d9884f]
/usr/lib64/libguile-2.0.so.22(scm_c_with_continuation_barrier+0x35)[0x7f1254d988e5]
/usr/lib64/libguile-2.0.so.22(+0xd955c)[0x7f1254e1155c]
/usr/lib64/libgc.so.1(GC_call_with_stack_base+0x12)[0x7f12507c3e82]
/usr/lib64/libguile-2.0.so.22(scm_with_guile+0x28)[0x7f1254e11918]
/usr/lib64/libguile-2.0.so.22(scm_boot_guile+0x25)[0x7f1254dbe3e5]
gnucash(main+0x41a)[0x402aea]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f1253e4f6e5]
gnucash(_start+0x29)[0x402b99]

In addition, a locally built copy from the 2.6.18 source crashes the same way

After some discussion on the gnucash mailing list, I received the following from one of the gnucash develoeprs:

=======================
GnuCash 2.6 uses an obsolete version of the WebKit library that hasn’t been updated in several years. It shouldn’t be used for anything besides GnuCash because it has a huge number of known exploits that have been fixed in the current WebKit2. The actual crash was triggered in a Java plugin named IcedTeaPlugin. I don’t know anything about that, but I suspect that it requires the WebKit2 API and crashes when WebKit1 tries to load it. You’ll have to find out from the OpenSuSE community how to adjust your system so that that doesn’t happen.

So I assume that this is an accurate view of the problem, but how do I update my 42.3 system to make this work?

Second: Why doesn’t it fail for EVERYONE when running reports? And why did it work fine in 42.2? :slight_smile:

Thanks!

Dan

FYI, this was fixed by removing the openjdk-plugin package from the system. I had both 1.7.0 and 1.8.0 installed; with them BOTH removed, the distro version of gnucash runs normally. With EITHER one installed, gnucash crashes any time you try to run a report.

Dan

Given that, GnuCash doesn’t seem to need Java and therefore doesn’t need openJDK, it seems strange that, an installed Java plugin was causing the crash.

Yes, the required Gtk WebKit library (libwebkitgtk-1.0.so.0) is quite old but, possibly not the root cause.

The “requires” list of the AqBanking package also doesn’t need Java. In fact, the only GnuCash which needs Java (openJDK) is the version for Android systems. There is a Java application to convert GnuCash XML to the QIF or IIF file format needed by QuickBooks but, that’s about it.

There is a “BackupGnuCash” application written in Java. Do you have it installed and, is there a plugin for GnuCash?

See the above quote from the gnucash dev team - I suspect from the trace that the webkit library uses Java and the plugins there (but I’m not a developer at ALL - just a guess :-). The crash actually occurs when running the Reports tool . . . which is using webkit. I don’t have BackupGnuCash, and I don’t have any gc plugins.

I concur.
Webkit is a web browser engine that still supports Netscape (NPAPI) plugins (unlike Chrome/Chromium, or even Firefox in the latest versions), like openjdk-plugin is…

It shouldn’t crash of course… But that probably won’t be fixed as libwebkitgtk-1.0.so.0 has been dropped from the distribution meanwhile, being old and outdated.

Then, we’re left with the issue of the IcedTea plugin needing the WebKit2 library but, GnuCash version 2.6 needs an obsolete WebKit library version.
On this Leap 42.3 system, the following WebKit2 libraries are installed:

  • libwebkit2gtk-4_0-37
  • webkit2gtk-4_0-injected-bundles

(Both required by “gnome-online-accounts” – I’ve no idea why the GNOME package was installed – I’m a KDE user.)