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 344229 - segv in e_table_header_draw_button (gtk+ 2.9.2)
segv in e_table_header_draw_button (gtk+ 2.9.2)
Status: RESOLVED DUPLICATE of bug 343764
Product: evolution
Classification: Applications
Component: Shell
2.8.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2006-06-08 01:48 UTC by Ed Catmur
Modified: 2013-09-13 00:53 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16


Attachments
e-table-header-utils.c.patch (549 bytes, patch)
2006-06-08 01:54 UTC, Ed Catmur
none Details | Review

Description Ed Catmur 2006-06-08 01:48:10 UTC
Backtrace was generated from '/usr/bin/evolution-2.8'

Using host libthread_db library "/lib/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1237161616 (LWP 13594)]
[New Thread -1320944736 (LWP 13623)]
[New Thread -1312552032 (LWP 13622)]
[New Thread -1287373920 (LWP 13619)]
[New Thread -1295766624 (LWP 13609)]
[New Thread -1278981216 (LWP 13607)]
[New Thread -1270588512 (LWP 13604)]
[New Thread -1260840032 (LWP 13603)]
[New Thread -1252447328 (LWP 13602)]
0xffffe410 in __kernel_vsyscall ()
  • #0 __kernel_vsyscall
  • #1 __waitpid_nocancel
    from /lib/libpthread.so.0
  • #2 libgnomeui_segv_handle
    at gnome-ui-init.c line 812
  • #3 <signal handler called>
  • #4 e_table_header_draw_button
    at e-table-header-utils.c line 357
  • #5 ethi_draw
    at e-table-header-item.c line 1013
  • #6 gnome_canvas_group_draw
    at gnome-canvas.c line 1680
  • #7 gnome_canvas_expose
    at gnome-canvas.c line 2992
  • #8 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #9 g_type_class_meta_marshal
    at gclosure.c line 567
  • #10 IA__g_closure_invoke
    at gclosure.c line 490
  • #11 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #12 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #13 IA__g_signal_emit
    at gsignal.c line 2241
  • #14 gtk_widget_event_internal
    at gtkwidget.c line 3901
  • #15 IA__gtk_widget_send_expose
    at gtkwidget.c line 3738
  • #16 do_update
    at gnome-canvas.c line 3104
  • #17 idle_handler
    at gnome-canvas.c line 3184
  • #18 g_idle_dispatch
    at gmain.c line 3924
  • #19 IA__g_main_context_dispatch
    at gmain.c line 2043
  • #20 g_main_context_iterate
    at gmain.c line 2675
  • #21 IA__g_main_loop_run
    at gmain.c line 2879
  • #22 bonobo_main
    at bonobo-main.c line 311
  • #23 main
    at main.c line 614

Generic GNOME 2.15 unstable system (gnome-experimental/bmg on Gentoo). Bug exhibits in gtk+-2.9.2, not gtk+-2.9.1.

Diagnosis + patch to follow.
Comment 1 Ed Catmur 2006-06-08 01:53:16 UTC
#include <gtk/gtk.h>

int main(int argc, char **argv) {
        gtk_init(&argc, &argv);
        GtkWidget *button = gtk_button_new_with_label("Hi");
        GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        GtkWidget *g_label = GTK_BIN(button)->child;
        gtk_container_add (GTK_CONTAINER (window), button);
        gtk_widget_ensure_style (window);
        gtk_widget_ensure_style (button);
        gtk_widget_ensure_style (g_label);
        g_printf("%p\n", g_label->style);
}
$ gcc $(pkg-config --cflags --libs gtk+-2.0) foo.c

Simple program exhibiting bug:

$ ./a.out

(a.out:21381): Gtk-CRITICAL **: gtk_widget_ensure_style: assertion `GTK_IS_WIDGET (widget)' failed
0xaaaaaaaa

With gtk+-2.9.1 or earlier:

$ ssh -X nikita ~/a.out
0x8072348

However, this is not a gtk+ bug. Evolution is at fault for poking at the internals of the GtkButton. The reason this bug exhibits is that the label in the button changes during gtk_widget_ensure_style (button); moving the child access to after the gtk_widget_ensure_style call fixes it.
Comment 2 Ed Catmur 2006-06-08 01:54:12 UTC
Created attachment 66947 [details] [review]
e-table-header-utils.c.patch
Comment 3 Ed Catmur 2006-06-08 01:55:10 UTC
Uh, sorry.

Severity: happens ~75-90% of the time when starting evolution.
Comment 4 Hiroyuki Ikezoe 2006-06-08 11:13:17 UTC
dup of bug 343764?
Comment 5 André Klapper 2006-06-08 12:37:26 UTC
indeed.
thanks again for pointing this out.

*** This bug has been marked as a duplicate of 343764 ***