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 641325 - Crash in _gtk_style_context_coalesce_animation_areas (gtkstylecontext.c)
Crash in _gtk_style_context_coalesce_animation_areas (gtkstylecontext.c)
Status: RESOLVED FIXED
Product: gnome-panel
Classification: Other
Component: panel
2.91.x
Other Linux
: Normal normal
: ---
Assigned To: Panel Maintainers
Panel Maintainers
: 647389 654672 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-02-03 09:25 UTC by Priit Laes (IRC: plaes)
Modified: 2011-07-19 14:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Move the gtk_widget_destroy away (789 bytes, patch)
2011-04-02 17:23 UTC, Josselin Mouette
committed Details | Review

Description Priit Laes (IRC: plaes) 2011-02-03 09:25:03 UTC
I'm getting following crash in gnome-panel-2.91.6 / gtk+-2.99.3 when clicking on a launcher icon sitting on a panel:

[snip]
Program received signal SIGSEGV, Segmentation fault.
_gtk_style_context_coalesce_animation_areas (context=0x0, widget=0x285f600) at gtkstylecontext.c:3150
3150	gtkstylecontext.c: No such file or directory.
	in gtkstylecontext.c
(gdb) bt
  • #0 _gtk_style_context_coalesce_animation_areas
    at gtkstylecontext.c line 3150
  • #1 _gtk_widget_draw_internal
    at gtkwidget.c line 5651
  • #2 gtk_widget_send_expose
    at gtkwidget.c line 5892
  • #3 gtk_main_do_event
    at gtkmain.c line 1777
  • #4 _gdk_window_process_updates_recurse
    at gdkwindow.c line 3872
  • #5 gdk_window_process_updates_internal
    at gdkwindow.c line 4028
  • #6 gdk_window_process_all_updates
    at gdkwindow.c line 4159
  • #7 gdk_window_update_idle
    at gdkwindow.c line 3762
  • #8 gdk_threads_dispatch
    at gdk.c line 757
  • #9 g_main_dispatch
    at gmain.c line 2440
  • #10 g_main_context_dispatch
    at gmain.c line 3013
  • #11 g_main_context_iterate
    at gmain.c line 3091
  • #12 g_main_loop_run
    at gmain.c line 3299
  • #13 gtk_main
    at gtkmain.c line 1338
  • #14 main
    at main.c line 130
[/snip]
Comment 1 Carlos Garnacho 2011-02-06 11:43:32 UTC
I discovered this wart in gnome-panel (xstuff.c, zoom_draw ()):

static gboolean
zoom_draw (GtkWidget *widget,
	   cairo_t   *cr,
           gpointer    user_data)
{
...
	if (zoom->size >= zoom->size_end) {
		...
		gtk_widget_destroy (widget);
	}
}

Even if it was working before, destroying a widget in the middle of a signal emission is somewhat evil, as it leaves no opportunity to handle it in any further operations on the object that GTK could make, nor a way to see it was destroyed.

Moving to gnome-panel.
Comment 2 Ritesh Khadgaray ( irc:ritz) 2011-03-15 06:52:56 UTC
tip: work around - disable composite
Comment 3 Josselin Mouette 2011-03-30 20:25:30 UTC
Perfectly reproducible here. I will try to look into this tomorrow with Vincent.
Comment 4 Josselin Mouette 2011-04-02 17:23:14 UTC
Created attachment 184956 [details] [review]
Move the gtk_widget_destroy away

Moving the gtk_widget_destroy call in an idle function indeed does the trick, thanks Carlos.
Comment 5 Vincent Untz 2011-04-11 13:01:49 UTC
*** Bug 647389 has been marked as a duplicate of this bug. ***
Comment 6 Vincent Untz 2011-04-11 13:07:46 UTC
Thanks, pushed!
Comment 7 Carlos Garnacho 2011-07-19 14:53:21 UTC
*** Bug 654672 has been marked as a duplicate of this bug. ***