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 574764 - evolution (gtkhtml) hit an assert in gtklayout.c:394
evolution (gtkhtml) hit an assert in gtklayout.c:394
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Widget: Other
2.16.x
Other Linux
: Normal critical
: ---
Assigned To: gtk-bugs
gtk-bugs
: 580075 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-03-10 15:10 UTC by Paul Bolle
Modified: 2013-10-18 03:50 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26



Description Paul Bolle 2009-03-10 15:10:21 UTC
0) evolution hit an assert in gtklayout.c (as far as I recall when resizing evolution's main window):

Gtk:ERROR:gtklayout.c:394:gtk_layout_move_internal: assertion failed: (child)
Aborted (core dumped)

1) versions (current Fedora rawhide):

$ rpm -q evolution
evolution-2.25.92-1.fc11.i586
$ rpm -q gtkhtml3
gtkhtml3-3.25.92-1.fc11.i586
$ rpm -q gtk2
gtk2-2.15.5-1.fc11.i586

2) quick analysis:

problem seems to be that gtk_layout_move_internal() doesn't handle a NULL return form get_child() gracefully, maybe (in this case) because gtk_layout_move() has already checked whether *child_widget really is a child of *layout before calling gtk_layout_move_internal() .

Maybe a race condition?

3) relevant code

(gdb) f 6
  • #6 draw
    at htmlembedded.c line 84
  • #5 gtk_layout_move_internal
    at gtklayout.c line 394
  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/libc.so.6
  • #2 abort
    from /lib/libc.so.6
  • #3 IA__g_assertion_message
  • #4 IA__g_assertion_message_expr
    at gtestutils.c line 1312
  • #5 gtk_layout_move_internal
    at gtklayout.c line 394
  • #6 draw
    at htmlembedded.c line 84
  • #7 html_object_draw
    at htmlobject.c line 1053
  • #8 draw
    at htmlclue.c line 268
  • #9 draw
    at htmlclueflow.c line 1371
  • #10 html_object_draw
    at htmlobject.c line 1053
  • #11 draw
    at htmlclue.c line 268
  • #12 draw
    at htmlcluev.c line 396
  • #13 html_object_draw
    at htmlobject.c line 1053
  • #14 html_engine_draw_real
    at htmlengine.c line 5099
  • #15 html_engine_expose
    at htmlengine.c line 5115
  • #16 expose
    at gtkhtml.c line 1213
  • #17 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #18 g_type_class_meta_marshal
    at gclosure.c line 878
  • #19 IA__g_closure_invoke
    at gclosure.c line 767
  • #20 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #21 IA__g_signal_emit_valist
    at gsignal.c line 2987
  • #22 IA__g_signal_emit
    at gsignal.c line 3034
  • #23 gtk_widget_event_internal
    at gtkwidget.c line 4761
  • #24 IA__gtk_main_do_event
    at gtkmain.c line 1558
  • #25 gdk_window_process_updates_internal
    at gdkwindow.c line 2611
  • #26 IA__gdk_window_process_updates
    at gdkwindow.c line 2726
  • #27 gtk_layout_adjustment_changed
    at gtklayout.c line 1111
  • #28 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #29 IA__g_closure_invoke
    at gclosure.c line 767
  • #30 signal_emit_unlocked_R
    at gsignal.c line 3244
  • #31 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #32 IA__g_signal_emit
    at gsignal.c line 3034
  • #33 IA__gtk_adjustment_value_changed
    at gtkadjustment.c line 672
  • #34 gtk_layout_size_allocate
    at gtklayout.c line 1004
  • #35 size_allocate
    at gtkhtml.c line 1283
  • #36 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #37 g_type_class_meta_marshal
    at gclosure.c line 878
  • #38 IA__g_closure_invoke
    at gclosure.c line 767
  • #39 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #40 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #41 IA__g_signal_emit
    at gsignal.c line 3034
  • #42 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #43 gtk_scrolled_window_size_allocate
    at gtkscrolledwindow.c line 1428
  • #44 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #45 g_type_class_meta_marshal
    at gclosure.c line 878
  • #46 IA__g_closure_invoke
    at gclosure.c line 767
  • #47 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #48 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #49 IA__g_signal_emit
    at gsignal.c line 3034
  • #50 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #51 gtk_box_size_allocate
    at gtkbox.c line 500
  • #52 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #53 g_type_class_meta_marshal
    at gclosure.c line 878
  • #54 IA__g_closure_invoke
    at gclosure.c line 767
  • #55 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #56 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #57 IA__g_signal_emit
    at gsignal.c line 3034
  • #58 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #59 gtk_paned_size_allocate
    at gtkpaned.c line 946
  • #60 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #61 g_type_class_meta_marshal
    at gclosure.c line 878
  • #62 IA__g_closure_invoke
    at gclosure.c line 767
  • #63 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #64 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #65 IA__g_signal_emit
    at gsignal.c line 3034
  • #66 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #67 gtk_box_size_allocate
    at gtkbox.c line 500
  • #68 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #69 g_type_class_meta_marshal
    at gclosure.c line 878
  • #70 IA__g_closure_invoke
    at gclosure.c line 767
  • #71 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #72 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #73 IA__g_signal_emit
    at gsignal.c line 3034
  • #74 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #75 gtk_plug_size_allocate
    at gtkplug.c line 747
  • #76 ??
    from /usr/lib/libbonoboui-2.so.0
  • #77 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #78 g_type_class_meta_marshal
    at gclosure.c line 878
  • #79 IA__g_closure_invoke
    at gclosure.c line 767
  • #80 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #81 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #82 IA__g_signal_emit
    at gsignal.c line 3034
  • #83 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #84 gtk_socket_size_allocate
    at gtksocket.c line 463
  • #85 ??
    from /usr/lib/libbonoboui-2.so.0
  • #86 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #87 g_type_class_meta_marshal
    at gclosure.c line 878
  • #88 IA__g_closure_invoke
    at gclosure.c line 767
  • #89 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #90 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #91 IA__g_signal_emit
    at gsignal.c line 3034
  • #92 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #93 ??
    from /usr/lib/libbonoboui-2.so.0
  • #94 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #95 g_type_class_meta_marshal
    at gclosure.c line 878
  • #96 IA__g_closure_invoke
    at gclosure.c line 767
  • #97 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #98 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #99 IA__g_signal_emit
    at gsignal.c line 3034
  • #100 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #101 gtk_notebook_size_allocate
    at gtknotebook.c line 2134
  • #102 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #103 g_type_class_meta_marshal
    at gclosure.c line 878
  • #104 IA__g_closure_invoke
    at gclosure.c line 767
  • #105 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #106 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #107 IA__g_signal_emit
    at gsignal.c line 3034
  • #108 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #109 gtk_paned_size_allocate
    at gtkpaned.c line 946
  • #110 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #111 g_type_class_meta_marshal
    at gclosure.c line 878
  • #112 IA__g_closure_invoke
    at gclosure.c line 767
  • #113 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #114 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #115 IA__g_signal_emit
    at gsignal.c line 3034
  • #116 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #117 gtk_box_size_allocate
    at gtkbox.c line 500
  • #118 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #119 g_type_class_meta_marshal
    at gclosure.c line 878
  • #120 IA__g_closure_invoke
    at gclosure.c line 767
  • #121 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #122 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #123 IA__g_signal_emit
    at gsignal.c line 3034
  • #124 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #125 ??
    from /usr/lib/libbonoboui-2.so.0
  • #126 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #127 g_type_class_meta_marshal
    at gclosure.c line 878
  • #128 IA__g_closure_invoke
    at gclosure.c line 767
  • #129 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #130 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #131 IA__g_signal_emit
    at gsignal.c line 3034
  • #132 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #133 gtk_box_size_allocate
    at gtkbox.c line 500
  • #134 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #135 g_type_class_meta_marshal
    at gclosure.c line 878
  • #136 IA__g_closure_invoke
    at gclosure.c line 767
  • #137 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #138 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #139 IA__g_signal_emit
    at gsignal.c line 3034
  • #140 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #141 gtk_window_size_allocate
    at gtkwindow.c line 4935
  • #142 impl_size_alloc
    at e-shell-window.c line 933
  • #143 IA__g_cclosure_marshal_VOID__BOXED
    at gmarshal.c line 566
  • #144 g_type_class_meta_marshal
    at gclosure.c line 878
  • #145 IA__g_closure_invoke
    at gclosure.c line 767
  • #146 signal_emit_unlocked_R
    at gsignal.c line 3174
  • #147 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #148 IA__g_signal_emit
    at gsignal.c line 3034
  • #149 IA__gtk_widget_size_allocate
    at gtkwidget.c line 3881
  • #150 gtk_window_move_resize
    at gtkwindow.c line 6180
  • #151 gtk_window_check_resize
    at gtkwindow.c line 5352
  • #152 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #153 g_type_class_meta_marshal
    at gclosure.c line 878
  • #154 IA__g_closure_invoke
    at gclosure.c line 767
  • #155 signal_emit_unlocked_R
    at gsignal.c line 3282
  • #156 IA__g_signal_emit_valist
    at gsignal.c line 2977
  • #157 IA__g_signal_emit
    at gsignal.c line 3034
  • #158 IA__gtk_container_check_resize
    at gtkcontainer.c line 1424
  • #159 gtk_container_idle_sizer
    at gtkcontainer.c line 1350
  • #160 gdk_threads_dispatch
    at gdk.c line 498
  • #161 g_idle_dispatch
    at gmain.c line 3922
  • #162 g_main_dispatch
    at gmain.c line 1814
  • #163 IA__g_main_context_dispatch
    at gmain.c line 2367
  • #164 g_main_context_iterate
    at gmain.c line 2448
  • #165 IA__g_main_loop_run
    at gmain.c line 2656
  • #166 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #167 main
    at main.c line 704

Comment 1 Akhil Laddha 2009-04-24 06:58:40 UTC
*** Bug 580075 has been marked as a duplicate of this bug. ***
Comment 2 Akhil Laddha 2009-04-24 07:00:15 UTC
I got similar crash in gnome-2.26 while trying to search in Evolution 2.26.1.

gtk2-2.16.1-1.1
gtk2-debuginfo-2.16.1-1.1
Comment 3 Timothy Arceri 2013-10-18 03:50:21 UTC
gtkhtml is currently being replaced with webkit so no point in looking into the this bug. If you have a more recent example on how to reproduce feel free to reopen. Making as obsolete.