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 626503 - Critical warning in GtkTreeView
Critical warning in GtkTreeView
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkTreeView
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtktreeview-bugs
gtktreeview-bugs
Depends on:
Blocks: 627238
 
 
Reported: 2010-08-10 08:08 UTC by Xavier Claessens
Modified: 2011-04-16 18:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed patch (980 bytes, patch)
2010-08-10 08:08 UTC, Xavier Claessens
committed Details | Review

Description Xavier Claessens 2010-08-10 08:08:01 UTC
Created attachment 167483 [details] [review]
Proposed patch

Empathy git master at startup print that warning. I've catched where it comes from using G_DEBUG=fatal-warnings

Gdk-CRITICAL **: IA__gdk_drawable_get_size: assertion `GDK_IS_DRAWABLE (drawable)' failed
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=<value optimized out>, log_level=<value optimized out>, format=<value optimized out>, args1=0x7fffffffbf10) at gmessages.c:554
554		  g_private_set (g_log_depth, GUINT_TO_POINTER (depth));
(gdb) bt
  • #0 g_logv
    at gmessages.c line 554
  • #1 g_log
    at gmessages.c line 568
  • #2 invalidate_empty_focus
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtktreeview.c line 4204
  • #3 gtk_tree_view_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtktreeview.c line 2464
  • #4 g_closure_invoke
    at gclosure.c line 766
  • #5 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #6 g_signal_emit_valist
    at gsignal.c line 2983
  • #7 g_signal_emit
    at gsignal.c line 3040
  • #8 IA__gtk_widget_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwidget.c line 4088
  • #9 gtk_scrolled_window_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkscrolledwindow.c line 1437
  • #10 g_closure_invoke
    at gclosure.c line 766
  • #11 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #12 g_signal_emit_valist
    at gsignal.c line 2983
  • #13 g_signal_emit
    at gsignal.c line 3040
  • #14 IA__gtk_widget_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwidget.c line 4088
  • #15 gtk_notebook_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtknotebook.c line 2271
  • #16 g_closure_invoke
    at gclosure.c line 766
  • #17 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #18 g_signal_emit_valist
    at gsignal.c line 2983
  • #19 g_signal_emit
    at gsignal.c line 3040
  • #20 IA__gtk_widget_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwidget.c line 4088
  • #21 gtk_box_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkbox.c line 500
  • #22 g_closure_invoke
    at gclosure.c line 766
  • #23 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #24 g_signal_emit_valist
    at gsignal.c line 2983
  • #25 g_signal_emit
    at gsignal.c line 3040
  • #26 IA__gtk_widget_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwidget.c line 4088
  • #27 gtk_window_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwindow.c line 4996
  • #28 g_closure_invoke
    at gclosure.c line 766
  • #29 signal_emit_unlocked_R
    at gsignal.c line 3182
  • #30 g_signal_emit_valist
    at gsignal.c line 2983
  • #31 g_signal_emit
    at gsignal.c line 3040
  • #32 IA__gtk_widget_size_allocate
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwidget.c line 4088
  • #33 gtk_window_move_resize
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwindow.c line 6405
  • #34 gtk_window_check_resize
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkwindow.c line 5410
  • #35 g_closure_invoke
    at gclosure.c line 766
  • #36 signal_emit_unlocked_R
    at gsignal.c line 3290
  • #37 g_signal_emit_valist
    at gsignal.c line 2983
  • #38 g_signal_emit
    at gsignal.c line 3040
  • #39 gtk_container_idle_sizer
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkcontainer.c line 1370
  • #40 gdk_threads_dispatch
    at /build/buildd/gtk+2.0-2.21.2/gdk/gdk.c line 512
  • #41 g_main_dispatch
    at gmain.c line 2119
  • #42 g_main_context_dispatch
    at gmain.c line 2672
  • #43 g_main_context_iterate
    at gmain.c line 2750
  • #44 g_main_loop_run
    at gmain.c line 2958
  • #45 IA__gtk_main
    at /build/buildd/gtk+2.0-2.21.2/gtk/gtkmain.c line 1219
  • #46 main
    at empathy.c line 605

Looks like tree_view->priv->bin_window is NULL, which can happen if and only if the widget is not realized. I though it was impossible to get size-allocate signal when not being reliazed, but gtk_tree_view_size_allocate() checks if it is realized in various cases, so I guess it could happen...

I'm attaching a patch, but I don't know if it is the proper way...
Comment 1 Felix Kaser 2010-08-24 08:25:06 UTC
I noticed something about this bug: when starting empathy with no account configured (fresh install, new account), bug #627238 appears.

The contact list stays empty, since no account is configured and the above criticals happen every time I try to resize the contact list window.

I don't know if that helps...
Comment 2 Kristian Rietveld 2011-04-16 18:14:42 UTC
I am a bit puzzled how you've managed to trigger this, but the fix is correct, I have committed it.