GNOME Bugzilla – Bug 685786
EWebView: Signal handlers never disconnected
Last modified: 2012-10-16 13:47:16 UTC
Running GNOME 3.6.0 (evolution 3.6.0) on openSUSE 12.2 Tried to capture a trace but there is nothing in it: Program received signal SIGSEGV, Segmentation fault. 0x080603b8 in ?? () (gdb) bt
+ Trace 230996
I don't have access to the debuginfo at this instant on my machine. Reproducible: not always but often (every 5-10 tries) Steps: 1) Read emails from an IMAP account 2) Do not use the preview pane 3) Double-click to open the incoming email in a new window 4) Click the "Reply" button 5) Every so often (1/6 or so) it will crash evolution
I should that I don't think it is not message specific. The next time I restart Evolution, I can click Reply and it will open the new compose message window for that reply on the very message that crashed previously.
The stacktrace is useless (empty and short). We need a full and better one...
I was able to get the debuginfo package installed despite the Chinese government's best efforts. Will try to reproduce and take a trace tomorrow (it's 3:20am here).
[Thread 0xa1efeb40 (LWP 11181) exited] Program received signal SIGSEGV, Segmentation fault. 0x74732d72 in ?? () Missing separate debuginfos, use: zypper install libmodman1-debuginfo-2.0.1-9.1.2.i586 libproxy1-debuginfo-0.4.7-14.1.2.i586 (gdb) bt
+ Trace 231010
Could this be somewhat related to https://bugzilla.gnome.org//show_bug.cgi?id=684691 bug 684691?
Another one: Program received signal SIGSEGV, Segmentation fault. 0xb5212cfc in e_web_view_update_fonts (web_view=0x9d3e658) at e-web-view.c:2785
+ Trace 231011
Seems it might have been reported downstream in Fedora recently also https://bugzilla.redhat.com/show_bug.cgi?id=860286 (I'm testing on openSUSE)
Thanks for the backtrace. This isn't a duplicate of bug 684691 but it's a similar mistake. We're listening for "changed" signals from a GSettings object, passing the EWebView as the closure to e_web_view_update_fonts(). But we never disconnect from that "changed" signal when the EWebView instance is destroyed, so eventually e_web_view_update_fonts() is invoked again in response to another "changed" signal with a now-invalid EWebView pointer. Hence the crash.
Fixed for Evolution 3.7.1 and 3.6.2 in: http://git.gnome.org/browse/evolution/commit/?id=890f31bd076da194c5b7ea8022e72c8aad4a0de1 http://git.gnome.org/browse/evolution/commit/?h=gnome-3-6&id=f7763bab384c94f7ad6ee46617346d9ae8eec7cb
I was able to apply the patch on the openSUSE version of the 3.6 package. Since applied the evolution process has not crashed. Thanks! I do not know if this is related, opening and closing new windows is now quite CPU intensive and takes several seconds. Could it be related to these changes? (I'm going to test with the same version without the patch).
(In reply to comment #10) > I do not know if this is related, opening and closing new windows is now quite > CPU intensive and takes several seconds. > > Could it be related to these changes? (I'm going to test with the same version > without the patch). Your best bet is to have full debug packages installed and have sysprof running when your CPU pegs. sysprof will then present a function call tree showing which functions are most responsible.