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 606344 - Clicking "Reply to All" button causes Evo to dump core
Clicking "Reply to All" button causes Evo to dump core
Status: VERIFIED FIXED
Product: evolution
Classification: Applications
Component: Mailer
2.30.x (obsolete)
Other Linux
: Normal blocker
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
: 606161 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-01-07 20:13 UTC by Paul Smith
Modified: 2013-09-13 01:03 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
mbox format of bad message (7.33 KB, application/x-crossover-msg)
2010-01-07 20:13 UTC, Paul Smith
Details

Description Paul Smith 2010-01-07 20:13:29 UTC
Created attachment 150995 [details]
mbox format of bad message

I'm using Evo built from the latest GIT (as of just an hour or two ago) and if I click "Reply to All" on a certain message, Evo dumps core on me.  My account uses IMAP.  This might be a problem in gtkhtml (that's where the core seems to be) but I only started having this problem (that I know of) recently and I haven't changed gtkhtml in a while.  It seems to be Evo incorrectly closing a gtkhtml stream, or something.  Let me know if you think it really belongs in gtkhtml.

Note I can "Reply to All" with other messages and it works.  I haven't been able to determine if there are other messages that fail and if so, what the common denominator is.

Interestingly, it's a message that was posted to evolution-list just today; archived here: http://mail.gnome.org/archives/evolution-list/2010-January/msg00041.html

I'll add the raw message as an attachment.

Here's the stack trace info:

  • #0 main_arena
    from /lib/libc.so.6
  • #1 gtk_html_stream_close
    at ../../../gtkhtml/gtkhtml/gtkhtml-stream.c line 137
  • #2 gtk_html_end
    at ../../../gtkhtml/gtkhtml/gtkhtml.c line 3705
  • #3 web_view_request_check_for_error
    at ../../../../evolution/widgets/misc/e-web-view.c line 180
  • #4 web_view_request_read_cb
    at ../../../../evolution/widgets/misc/e-web-view.c line 233
  • #5 ??
    from /usr/lib/gio/modules/libgvfsdbus.so
  • #6 ??
    from /usr/lib/gio/modules/libgvfsdbus.so
  • #7 ??
    from /usr/lib/libgvfscommon.so.0
  • #8 ??
    from /lib/libdbus-1.so.3
  • #9 dbus_connection_dispatch
    from /lib/libdbus-1.so.3
  • #10 ??
    from /usr/lib/libgvfscommon.so.0
  • #11 g_main_dispatch
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 1960
  • #12 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2513
  • #13 g_main_context_iterate
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2591
  • #14 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c line 2799
  • #15 IA__gtk_main
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmain.c line 1218
  • #16 main
    at ../../../evolution/shell/main.c line 609
  • #3 web_view_request_check_for_error
    at ../../../../evolution/widgets/misc/e-web-view.c line 180

(gdb) l
175             /* XXX Should we log errors that are not cancellations? */
176
177             html = GTK_HTML (request->web_view);
178             stream = request->output_stream;
179
180             gtk_html_end (html, stream, GTK_HTML_STREAM_ERROR);
181             web_view_request_free (request);
182             g_error_free (error);
183
184             return TRUE;
Comment 1 Paul Smith 2010-01-07 20:19:09 UTC
FYI it also happens on plain "Reply" and "Reply to List", not just "reply to all".  It appears to be something about the contents of the reply (I have HTML mail enabled, and quoting).

Also, if I just select some of the text and then hit reply, it doesn't dump core.  Only if I try to reply where the entire message is quoted.
Comment 2 Milan Crha 2010-01-08 14:26:47 UTC
I can reproduce it with your test message as well. Thus confirming.
Comment 3 Milan Crha 2010-01-08 15:05:22 UTC
Question for Matt: Why is composer EWebView?

Reason: ASYNC doesn't work here, as there is no connection on stream closing, and the EWebView obviously doesn't know how to get embedded images from message body, whereas the composer knows how to do that. And it did that actually, but as the second in a row, web view put its async fetch in a queue first, but the stream got freed just after that, and then one got an error of wrong URI, and then web view tried to close GtkHtmlStream which was already closed.

Making composer plain GtkHTML fixes the issue. (e-msg_composer.c:2275)
Comment 4 Matthew Barnes 2010-01-08 21:00:57 UTC
Fixed in two commits:
http://git.gnome.org/browse/evolution/commit/?id=7636c4705148cd31f842de134448918381dc2045
http://git.gnome.org/browse/gtkhtml/commit/?id=203ce61e6ea19323914b9c459b2e79bde5db15be

It was a signal handler ordering issue.  See the first commit message for a detailed explanation.
Comment 5 Matthew Barnes 2010-01-08 21:04:14 UTC
(In reply to comment #3)
> Question for Matt: Why is composer EWebView?

Two reasons: 1) to eliminate duplicate code in EWebView and GtkhtmlEditor, and 2) I'm trying to hide as much direct GtkHTML usage as possible behind the EWebView API to help prepare for the migration to WebKit.
Comment 6 Lucian Langa 2010-01-08 21:44:59 UTC
*** Bug 606161 has been marked as a duplicate of this bug. ***
Comment 7 Paul Smith 2010-01-08 23:02:04 UTC
Works now; thanks Matt!