Bugzilla – Bug 113936
Evolution crashes when viewing a jpg attachment
Last modified: 2005-12-09 17:02:12 UTC
how to reproduce: send a mail with a jpg attachment. After that, look at your sent mail folder, see the mail, and open the attachment, so that the jpg is shown inside evolution. After two or three openings and closing again, evolution crashes. This time, evolution is started under KDE. I don't know if occurs still on Beta3 as I don't have it yet available. The console output is this: >----------------------------------------------------------< es menu class init adding hook target 'source' (evolution:10688): camel-WARNING **: Invalid root: '/home/holgernet/.evolution/m ail/local/Drafts.ibex.index' (evolution:10688): camel-WARNING **: version: TEXT.000 (TEXT.000) (evolution:10688): camel-WARNING **: block size: 1024 (1024) OK (evolution:10688): camel-WARNING **: free: 0 (0 add size < 1024) OK (evolution:10688): camel-WARNING **: last: 6144 (6144 and size: 1024) BAD (evolution:10688): camel-WARNING **: flags: unSYNC (evolution:10688): camel-WARNING **: Invalid root: '/home/holgernet/.evolution/m ail/local/Outbox.ibex.index' (evolution:10688): camel-WARNING **: version: TEXT.000 (TEXT.000) (evolution:10688): camel-WARNING **: block size: 1024 (1024) OK (evolution:10688): camel-WARNING **: free: 0 (0 add size < 1024) OK (evolution:10688): camel-WARNING **: last: 6144 (6144 and size: 1024) BAD (evolution:10688): camel-WARNING **: flags: unSYNC (evolution:10688): Gdk-CRITICAL **: gdk_gc_set_foreground: assertion `GDK_IS_GC (gc)' failed QPixmap: Invalid pixmap parameters QPainter::begin: Cannot paint null pixmap QPainter::setPen: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() (evolution:10688): Gdk-CRITICAL **: gdk_pixmap_foreign_new_for_display: assertio n `(anid != 0)' failed (evolution:10688): Gdk-CRITICAL **: gdk_draw_drawable: assertion `src != NULL' f ailed (evolution:10688): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJ ECT (object)' failed ** (evolution:10688): WARNING **: Failed to connect to the D-BUS daemon: Unable to determine the address of the message bus requesting object classid: attachment-bar object_found: 1 requesting object classid: attachment.0x8218be0.86.mixed.1 object_found: 1 (evolution:10688): GnomeCanvas-CRITICAL **: gnome_canvas_request_redraw: asserti on `GNOME_IS_CANVAS (canvas)' failed requesting object classid: attachment-bar object_found: 1 requesting object classid: attachment.0x8218be0.86.mixed.1 object_found: 1 requesting object classid: image.0x8218be0.86.mixed.1 object_found: 1 >-------------------------------------------------------------< I'll attach an strace.
Created attachment 48051 [details] evo strace i386 beta2 full strace is too big, here is the last part of it.
It seems that it only crashes when you scroll down to the picture, when the view is opened. I mean: look at the mail, click on the attachment, this is 1024x768 here, you don't see the picture, you need to scroll. Scroll down, and then click on the attachment button to close the picture view. It crashes at this point. If I don't scroll down, it doesn't crash.
It happens too when I view a forwarded message (the forwarded message is the attachment in this case). So it does not depend on the jpeg file. If it's fixed with Beta3... Never mind :)
backtrace (gdb) bt 30 #0 0x413a96be in XSetLineAttributes () from /usr/X11R6/lib/libX11.so.6 #1 0x41a3a750 in QPainter::updateBrush () from /usr/lib/qt3/lib/libqt-mt.so.3 #2 0x41ae2c4f in QPainter::setBrush () from /usr/lib/qt3/lib/libqt-mt.so.3 #3 0x41ae38b1 in QPainter::fillRect () from /usr/lib/qt3/lib/libqt-mt.so.3 #4 0x418562a5 in drawArrow () from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so #5 0x4184cee3 in qtengine_rc_style_register_type () from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so #6 0x40dd7ed8 in gtk_paint_arrow () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #7 0x40c7b221 in gtk_arrow_set () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #8 0x40d6a7d4 in gtk_marshal_VOID__UINT_STRING () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #9 0x411d9797 in g_cclosure_new_swap () from /opt/gnome/lib/libgobject-2.0.so.0 #10 0x411d9e79 in g_closure_invoke () from /opt/gnome/lib/libgobject-2.0.so.0 #11 0x411eae27 in g_signal_stop_emission () from /opt/gnome/lib/libgobject-2.0.so.0 #12 0x411ec371 in g_signal_emit_valist () from /opt/gnome/lib/libgobject-2.0.so.0 #13 0x411ec965 in g_signal_emit () from /opt/gnome/lib/libgobject-2.0.so.0 #14 0x40e74414 in gtk_widget_activate () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #15 0x40cc80bf in gtk_container_propagate_expose () ---Type <return> to continue, or q <return> to quit--- from /opt/gnome/lib/libgtk-x11-2.0.so.0 #16 0x40cc8116 in gtk_container_propagate_expose () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #17 0x40c81041 in gtk_box_reorder_child () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #18 0x40cc5eac in gtk_container_forall () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #19 0x40cc7ce4 in gtk_container_get_focus_hadjustment () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #20 0x40d6a7d4 in gtk_marshal_VOID__UINT_STRING () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #21 0x411d9797 in g_cclosure_new_swap () from /opt/gnome/lib/libgobject-2.0.so.0 #22 0x411d9e79 in g_closure_invoke () from /opt/gnome/lib/libgobject-2.0.so.0 #23 0x411eae27 in g_signal_stop_emission () from /opt/gnome/lib/libgobject-2.0.so.0 #24 0x411ec371 in g_signal_emit_valist () from /opt/gnome/lib/libgobject-2.0.so.0 #25 0x411ec965 in g_signal_emit () from /opt/gnome/lib/libgobject-2.0.so.0 #26 0x40e74414 in gtk_widget_activate () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #27 0x40cc80bf in gtk_container_propagate_expose () from /opt/gnome/lib/libgtk-x11-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #28 0x40cc8116 in gtk_container_propagate_expose () from /opt/gnome/lib/libgtk-x11-2.0.so.0 #29 0x40c7d2f5 in gtk_bin_get_type () from /opt/gnome/lib/libgtk-x11-2.0.so.0 (More stack frames follow...)
seems to be another qt-gtk-engine problem. It does not happen when using an other GTK theme.
Adrian, what should we do with gtk-qt-engine?
Not sure whom to re-assign this to.
reassigning to kde-maintainers
I do not see this crash here. But there are lots of "GnomeCanvas-CRITICIAL **: gnome_canvas_request_redraw: assetion GNOME_IS_CANVAS (canvas) failed" errors in this case. These errors do happen with and without gtk-qt-engine. Furthermore valgrind2 show lots of memory corruptions independend of gtk-qt-engine already at startup time. These should get fixed before further debugging. tested on beta4.
valgrind2 did not show any errors during showing/hiding the picture btw.
It likely has nothing to do with the attachment it self, it draws an arrow used to show the attachment.
Fix submitted to STABLE.
*** Bug 117160 has been marked as a duplicate of this bug. ***