GNOME Bugzilla – Bug 652769
Reordering/removing hidden children in GtkBox results in 100% CPU
Last modified: 2011-06-30 07:12:22 UTC
Open bug in launchpad.net: https://bugs.launchpad.net/bugs/798377 "1) Open empathy 2) Connect to network 3) open windows of chat 4) full load empathy-chat"
+ Trace 227498
https://bugs.launchpad.net/ubuntu/+source/empathy/+bug/798377/+attachment/2172087/+files/valgrind-empathy.log.xz
I can reproduce this with GTK+3 master (but didn't with an older GTK+). My console is flooded with: (empathy-chat:16835): Gtk-CRITICAL **: gtk_style_provider_get_style_property: assertion `g_type_is_a (gtk_widget_path_get_object_type (path), pspec->owner_type)' failed that's probably the issue.
Gtk-CRITICAL **: gtk_style_provider_get_style_property: assertion `g_type_is_a (gtk_widget_path_get_object_type (path), pspec->owner_type)' failed Program received signal SIGTRAP, Trace/breakpoint trap. 0x00007ffff197b974 in g_logv (log_domain=0x7fffe99cea39 "Gtk", log_level=G_LOG_LEVEL_CRITICAL, format=0x7ffff1a03178 "%s: assertion `%s' failed", args1=0x7fffffffb0c0) at gmessages.c:552 552 G_BREAKPOINT ();
+ Trace 227527
May be related to bug #652990 let's fix that first.
Don't see to be related to bug #652990 after all (I can still reproduce it while commenting out code raising bug #652990). This really looks like a Gtk+ 3.1.x regression.
Created attachment 190845 [details] [review] gtkbox: Invalidate order on changes, even if the child is not visible When we build the sibling path for the order, we do not skip hidden children (since, quoting the comment, "we cannot reliably detect changes in widget visibility"). So we need to invalidate the order when hidden children are reordered and removed.
Thanks, I have confirmed this fixes the bug for me. I have uploaded the patch to oneiric.
Comment on attachment 190845 [details] [review] gtkbox: Invalidate order on changes, even if the child is not visible Looks good, feel free to commit. Or I'll get to it later.