Bug 48161

Summary: Crashes at cairo_xlib_surface_get_drawable
Product: cairo Reporter: Mantas Mikulėnas <grawity>
Component: generalAssignee: Carl Worth <cworth>
Status: RESOLVED NOTOURBUG QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: major    
Priority: medium    
Version: 1.12.0   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Mantas Mikulėnas 2012-04-01 07:50:31 UTC
Since updating to the latest cairo, "gnome-settings-daemon" has been crashing with the following backtrace.

I'm not sure if that is a bug of cairo, g-s-d, gtk3 or anything, so I'm filing it for the topmost entry...

Core for: /usr/lib/gnome-settings-daemon/gnome-settings-daemon (180644)
Dumped to /tmp/core.gnome-settings-.180644

Program terminated with signal 11, Segmentation fault.
#0  0x00007f384eb650c7 in cairo_xlib_surface_get_drawable ()
   from /usr/lib/libcairo.so.2
#0  0x00007f384eb650c7 in cairo_xlib_surface_get_drawable ()
   from /usr/lib/libcairo.so.2
#1  0x00007f385199dac9 in gtk_tray_icon_draw (widget=0x10fe050, cr=0x11389c0)
    at gtktrayicon-x11.c:355
#2  0x00007f38517b5324 in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x108e810, 
    return_value=0x7fff8220baf0, instance=0x10fe050, args=0x7fff8220bcb8, 
    marshal_data=0x7f385199da55, n_params=1, param_types=0x108e880)
    at gtkmarshalers.c:130
#3  0x00007f3851943fee in gtk_widget_draw_marshallerv (closure=0x108e810, 
    return_value=0x7fff8220baf0, instance=0x10fe050, args=0x7fff8220bcb8, 
    marshal_data=0x7f385199da55, n_params=1, param_types=0x108e880)
    at gtkwidget.c:850
#4  0x00007f38510551a3 in ?? () from /usr/lib/libgobject-2.0.so.0
#5  0x00007f385106d816 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#6  0x00007f385106e062 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#7  0x00007f385194cbcc in _gtk_widget_draw_internal (widget=0x10fe050, 
    cr=0x11389c0, clip_to_size=1) at gtkwidget.c:5828
#8  0x00007f385194d879 in gtk_widget_send_expose (widget=0x10fe050, 
    event=0x7fff8220bf40) at gtkwidget.c:6211
#9  0x00007f38517b3843 in gtk_main_do_event (event=0x7fff8220bf40)
    at gtkmain.c:1621
#10 0x00007f384f469566 in _gdk_event_emit (event=0x7fff8220bf40)
    at gdkevents.c:69
#11 0x00007f384f4795a5 in _gdk_window_process_updates_recurse (
    window=0x10c2480, expose_region=0x1303120) at gdkwindow.c:3883
#12 0x00007f384f4b470e in gdk_x11_window_process_updates_recurse (
    window=0x10c2480, region=0x1303120) at gdkwindow-x11.c:4852
#13 0x00007f384f4799ae in gdk_window_process_updates_internal (
    window=0x10c2480) at gdkwindow.c:4069
#14 0x00007f384f479df7 in gdk_window_process_updates (window=0x10c2480, 
    update_children=1) at gdkwindow.c:4265
#15 0x00007f385196b41d in gtk_window_move_resize (window=0x10fe050)
    at gtkwindow.c:7241
#16 0x00007f3851969cde in gtk_window_check_resize (container=0x10fe050)
    at gtkwindow.c:6285
#17 0x00007f3851999e2e in gtk_plug_check_resize (container=0x10fe050)
    at gtkplug.c:1439
#18 0x00007f38510551a3 in ?? () from /usr/lib/libgobject-2.0.so.0
#19 0x00007f385106d816 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#20 0x00007f385106e062 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#21 0x00007f38516ffc58 in gtk_container_check_resize (container=0x10fe050)
    at gtkcontainer.c:1771
#22 0x00007f38516ff921 in gtk_container_idle_sizer (data=0x0)
    at gtkcontainer.c:1661
#23 0x00007f384f45e60f in gdk_threads_dispatch (data=0x12334a0) at gdk.c:763
#24 0x00007f3850d9837c in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#25 0x00007f3850d98798 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0x00007f3850d98b92 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#27 0x00007f38517b309e in gtk_main () at gtkmain.c:1161
#28 0x00000000004040da in main (argc=1, argv=0x7fff8220c858) at main.c:456

cairo 1.12.0-1
gnome-settings-daemon 3.4.0-1
gtk3 3.4.0-1
glib2 2.32.0-1
xcb-util 0.3.8-1
libx11 1.4.99.901-1
Comment 1 Chris Wilson 2012-04-01 08:00:03 UTC
Called with a garbage surface, expect a crash. Go fix the root cause.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.