After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 685786 - EWebView: Signal handlers never disconnected
EWebView: Signal handlers never disconnected
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
3.6.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2012-10-09 08:30 UTC by Guy Lunardi
Modified: 2012-10-16 13:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Guy Lunardi 2012-10-09 08:30:13 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
  • #0 ??
  • #1 main_arena
    from /lib/libc.so.6
  • #2 ??

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
Comment 1 Guy Lunardi 2012-10-09 08:31:48 UTC
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.
Comment 2 André Klapper 2012-10-09 10:13:21 UTC
The stacktrace is useless (empty and short). We need a full and better one...
Comment 3 Guy Lunardi 2012-10-09 19:22:17 UTC
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).
Comment 4 Guy Lunardi 2012-10-11 02:20:21 UTC
[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
  • #0 ??
  • #1 e_web_view_update_fonts
    at e-web-view.c line 2786
  • #2 g_cclosure_marshal_VOID__STRINGv
    from /usr/lib/libgobject-2.0.so.0
  • #3 _g_closure_invoke_va
    from /usr/lib/libgobject-2.0.so.0
  • #4 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_settings_real_change_event
    from /usr/lib/libgio-2.0.so.0
  • #7 ffi_call_SYSV
    from /usr/lib/libffi.so.4
  • #8 ffi_call
    from /usr/lib/libffi.so.4
  • #9 g_cclosure_marshal_generic_va
    from /usr/lib/libgobject-2.0.so.0
  • #10 g_type_class_meta_marshalv
    from /usr/lib/libgobject-2.0.so.0
  • #11 _g_closure_invoke_va
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #14 settings_backend_path_changed
    from /usr/lib/libgio-2.0.so.0
  • #15 g_settings_backend_invoke_closure
    from /usr/lib/libgio-2.0.so.0
  • #16 g_idle_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #17 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #18 g_main_context_iterate.isra.22
    from /usr/lib/libglib-2.0.so.0
  • #19 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #20 gtk_main
    from /usr/lib/libgtk-3.so.0
  • #21 main
    at main.c line 691

Comment 5 Guy Lunardi 2012-10-11 06:24:15 UTC
Could this be somewhat related to https://bugzilla.gnome.org//show_bug.cgi?id=684691 bug 684691?
Comment 6 Guy Lunardi 2012-10-11 08:22:41 UTC
Another one:

Program received signal SIGSEGV, Segmentation fault.
0xb5212cfc in e_web_view_update_fonts (web_view=0x9d3e658) at e-web-view.c:2785
  • #0 e_web_view_update_fonts
    at e-web-view.c line 2785
  • #1 g_cclosure_marshal_VOID__STRINGv
    from /usr/lib/libgobject-2.0.so.0
  • #2 _g_closure_invoke_va
    from /usr/lib/libgobject-2.0.so.0
  • #3 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #4 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_settings_real_change_event
    from /usr/lib/libgio-2.0.so.0
  • #6 ffi_call_SYSV
    from /usr/lib/libffi.so.4
  • #7 ffi_call
    from /usr/lib/libffi.so.4
  • #8 g_cclosure_marshal_generic_va
    from /usr/lib/libgobject-2.0.so.0
  • #9 g_type_class_meta_marshalv
    from /usr/lib/libgobject-2.0.so.0
  • #10 _g_closure_invoke_va
    from /usr/lib/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #13 settings_backend_path_changed
    from /usr/lib/libgio-2.0.so.0
  • #14 g_settings_backend_invoke_closure
    from /usr/lib/libgio-2.0.so.0
  • #15 g_idle_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #16 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #17 g_main_context_iterate.isra.22
    from /usr/lib/libglib-2.0.so.0
  • #18 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #19 gtk_main
    from /usr/lib/libgtk-3.so.0
  • #20 main
    at main.c line 691

Comment 7 Guy Lunardi 2012-10-11 08:24:52 UTC
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)
Comment 8 Matthew Barnes 2012-10-11 11:44:54 UTC
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.
Comment 10 Guy Lunardi 2012-10-16 12:57:43 UTC
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).
Comment 11 Matthew Barnes 2012-10-16 13:47:16 UTC
(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.