On three different up-to-date ~amd64 systems now, evolution crashes in webkit-gtk when trying to switch panels - either "component" or even trying to open the "settings" window. This only happens with version 2.30.4 but not with 2.30.3. Also recompiled evolution, recompiled webkit-gtk without ccache/distcc, the problem remains. Note that already the very first assertion failure does not occur with net-libs/webkit-gtk-2.30.3. Program output when running with gdb: ASSERTION FAILED: schemeResult.isNewEntry /var/tmp/portage/net-libs/webkit-gtk-2.30.4/work/webkitgtk-2.30.4/Source/WebKit/UIProcess/WebPageProxy.cpp(9431) : void WebKit::WebPageProxy::setURLSchemeHandlerForScheme(WTF::Ref<WebKit::WebURLSchemeHandler>&&, const WTF::String&) Thread 1 "evolution" received signal SIGABRT, Aborted. 0x00007ffff12f0c31 in raise () from /lib64/libc.so.6 (gdb) where #0 0x00007ffff12f0c31 in raise () at /lib64/libc.so.6 #1 0x00007ffff12da536 in abort () at /lib64/libc.so.6 #2 0x00007ffff1d8fad2 in () at /usr/lib64/libwebkit2gtk-4.0.so.37 #3 0x00007ffff26abebc in webkit_web_context_register_uri_scheme () at /usr/lib64/libwebkit2gtk-4.0.so.37 #4 0x00007ffff1661028 in e_web_view_register_content_request_for_scheme () at /usr/lib64/evolution/libevolution-util.so #5 0x00007ffff16644a0 in () at /usr/lib64/evolution/libevolution-util.so #6 0x00007ffff730975d in () at /usr/lib64/libgobject-2.0.so.0 #7 0x00007ffff730a9f5 in g_object_new_with_properties () at /usr/lib64/libgobject-2.0.so.0 #8 0x00007ffff730b4a9 in g_object_new () at /usr/lib64/libgobject-2.0.so.0 #9 0x00007fffdaf80d84 in () at /usr/lib64/evolution/modules/module-addressbook.so #10 0x00007ffff73095d7 in () at /usr/lib64/libgobject-2.0.so.0 #11 0x00007ffff730b10e in g_object_new_valist () at /usr/lib64/libgobject-2.0.so.0 #12 0x00007ffff730b481 in g_object_new () at /usr/lib64/libgobject-2.0.so.0 #13 0x00007ffff7fafcdc in () at /usr/lib64/evolution/libevolution-shell.so #14 0x00007fffdaf8354b in () at /usr/lib64/evolution/modules/module-addressbook.so #15 0x00007ffff73095d7 in () at /usr/lib64/libgobject-2.0.so.0 #16 0x00007ffff730b10e in g_object_new_valist () at /usr/lib64/libgobject-2.0.so.0 #17 0x00007ffff730b481 in g_object_new () at /usr/lib64/libgobject-2.0.so.0 #18 0x00007ffff7fb2470 in () at /usr/lib64/evolution/libevolution-shell.so #19 0x00007ffff7fb1dd5 in e_shell_window_get_shell_view () at /usr/lib64/evolution/libevolution-shell.so #20 0x00007ffff7fb5b96 in e_shell_window_switch_to_view () at /usr/lib64/evolution/libevolution-shell.so Reproducible: Always
It appears that my port from cmake-utils.eclass to cmake.eclass is building something a bit different. At least a quick late night test seems to suggest that, as I could reproduce it on component switch, but after rebuilding webkit-gtk with cmake-utils again, the crash goes away. Now need to figure out next what is different in the build options passed, etc. But that's not for today anymore.
Created attachment 679344 [details] webkit-gtk-2.30.4 moved back to cmake-utils to test Here's the ebuild changed back to cmake-utils, if you'd like to help test: if it crashes evo-3.38 with webkit-gtk-2.30.4 as found in tree, and then when rebuilding webkit-gtk with this cmake-utils one, does the crashing go away. Also of course full investigation help welcome. I would start comparing the configure command called between cmake.eclass and cmake-utils.eclass for webkit-gtk
cmake.utils dropped passing of -NDEBUG compared to cmake-utils.eclass (as a separate change to cmake.utils after it's introduction, but for us it's the difference here). Then now we get this: ASSERTION FAILED: schemeResult.isNewEntry /tmp/portage/net-libs/webkit-gtk-2.30.4/work/webkitgtk-2.30.4/Source/WebKit/UIProcess/WebPageProxy.cpp(9431) : void WebKit::WebPageProxy::setURLSchemeHandlerForScheme(WTF::Ref<WebKit::WebURLSchemeHandler>&&, const WTF::String&) Thread 1 "evolution" received signal SIGABRT, Aborted. while with -NDEBUG it was compiling out the assertion and hiding the problem enough to not crash. I don't think we should just go and pass -NDEBUG again, it was indeed questionable to have done so before by cmake-utils. Also the build type setting to Release instead of Gentoo in src_configure is not effective anymore, as Gentoo build type is still passed to configure with the current setup. We need to compare what Release build type does for webkit-gtk and clean that up appropriately as well. Additionally then there's investigation needed why with evolution-3.38 it's hitting this assert now, and fixing that separately.
I think it asserts due to evolution registering `evo-file` scheme multiple times
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f261968c53e914d3e339e57c7d157b72bf32f81 commit 0f261968c53e914d3e339e57c7d157b72bf32f81 Author: Mart Raudsepp <leio@gentoo.org> AuthorDate: 2020-12-24 15:54:17 +0000 Commit: Mart Raudsepp <leio@gentoo.org> CommitDate: 2020-12-24 16:03:07 +0000 net-libs/webkit-gtk-2.30.4: workaround evolution bug, other improvements * Porting from cmake-utils.eclass to cmake.eclass made -DNDEBUG not be passed anymore, converting some mail-client/evolution issues into aborts. Keep passing -DNDEBUG for the time being again. * Improve cross-compilation by not requiring sys-apps/xdg-dbus-proxy on CBUILD * Build the MiniBrowser with USE=examples Bug: https://bugs.gentoo.org/761238 Closes: https://bugs.gentoo.org/760902 Closes: https://bugs.gentoo.org/758299 Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Mart Raudsepp <leio@gentoo.org> net-libs/webkit-gtk/metadata.xml | 1 + net-libs/webkit-gtk/webkit-gtk-2.30.4-r1.ebuild | 300 ++++++++++++++++++++++++ 2 files changed, 301 insertions(+)
Actually I suspect we'll need to keep the -NDEBUG for quite a bit, so lets close this as fixed, as for evolution it's fixed.
Kudos, Mart, for the great work, and merry Christmas! -Bernd
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54450b263436736cada0610161f8a251925c47aa commit 54450b263436736cada0610161f8a251925c47aa Author: Mart Raudsepp <leio@gentoo.org> AuthorDate: 2021-01-09 10:29:27 +0000 Commit: Mart Raudsepp <leio@gentoo.org> CommitDate: 2021-01-09 10:37:18 +0000 mail-client/evolution: bump to 3.38.3 Includes upstream fix for webkit-gtk built without -NDEBUG. Require USE=spell on webkit-gtk if enabled on evolution, to ensure visual highlighting of spelling errors works. Bug: https://bugs.gentoo.org/761238 Closes: https://bugs.gentoo.org/751217 Package-Manager: Portage-3.0.12, Repoman-3.0.2 Signed-off-by: Mart Raudsepp <leio@gentoo.org> mail-client/evolution/Manifest | 1 + mail-client/evolution/evolution-3.38.3.ebuild | 152 ++++++++++++++++++++++++++ 2 files changed, 153 insertions(+)
evolution-40 should be fine with NDEBUG, reopening to consider it at some point again now