[Wayland-bugs] [Bug 773307] New: [Wayland] crash at gdk_flush() called from "draw" signal handler during resize
gtk+ (GNOME Bugzilla)
bugzilla at gnome.org
Fri Oct 21 10:11:40 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=773307
Bug ID: 773307
Summary: [Wayland] crash at gdk_flush() called from "draw"
signal handler during resize
Classification: Platform
Product: gtk+
Version: 3.22.x
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: Backend: Wayland
Assignee: gtk-bugs at gtk.org
Reporter: stransky at redhat.com
QA Contact: gtk-bugs at gtk.org
CC: rob at robster.org.uk, wayland-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 338172
--> https://bugzilla.gnome.org/attachment.cgi?id=338172&action=edit
testcase - resize the window until crash
That bug comes from Firefox on Wayland. Constantly crashes when it's resized.
There's a minimized testcase.
Wayland backend calls drop_cairo_surfaces() in configure event. When
gdk_flush() is called in expose event, the configure event is fired and
drop_cairo_surfaces() deletes active wayland surfaces and gdk then crashes when
tries to finish painting after return from expose handler.
bt:
#4 0x00007ffff46c3216 in drop_cairo_surfaces (window=0x7fffc1579380
[GdkWaylandWindow]) at gdkwindow-wayland.c:273
#5 0x00007ffff46c3297 in gdk_wayland_window_update_size (scale=1, height=550,
width=745, window=0x7fffc1579380 [GdkWaylandWindow]) at gdkwindow-wayland.c:333
#6 0x00007ffff46c3297 in gdk_wayland_window_configure
(window=window at entry=0x7fffc1579380 [GdkWaylandWindow], width=745, height=550,
scale=1) at gdkwindow-wayland.c:1025
#7 0x00007ffff46c608e in xdg_surface_configure (data=<optimized out>,
xdg_surface=0x7fffb9e9c560, serial=6084)
at gdkwindow-wayland.c:1390
#8 0x00007fffeddd5c58 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#9 0x00007fffeddd56ba in ffi_call (cif=cif at entry=0x7fffffff8800, fn=<optimized
out>, rvalue=<optimized out>,
rvalue at entry=0x0, avalue=avalue at entry=0x7fffffff88d0) at
../src/x86/ffi64.c:525
#10 0x00007ffff0a0dcfe in wl_closure_invoke (closure=<optimized out>,
flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>)
at src/connection.c:935
#11 0x00007ffff0a0a990 in dispatch_event (display=display at entry=0x7ffff6b7b640,
queue=<optimized out>)
at src/wayland-client.c:1310
#12 0x00007ffff0a0bbe4 in dispatch_queue (queue=0x7ffff6b7b708,
display=0x7ffff6b7b640) at src/wayland-client.c:1456
#13 0x00007ffff0a0bbe4 in wl_display_dispatch_queue_pending
(display=0x7ffff6b7b640, queue=0x7ffff6b7b708)
at src/wayland-client.c:1698
#14 0x00007ffff0a0c00b in wl_display_roundtrip_queue (display=0x7ffff6b7b640,
queue=0x7ffff6b7b708)
at src/wayland-client.c:1121
#15 0x00007ffff465305c in gdk_flush () at gdkdisplay.c:598
[...] (Firefox expose handler)
#37 0x00007fffe4d77b3e in draw_window_of_widget(_GtkWidget*, _GdkWindow*,
_cairo*) (widget=0x7fffbe789070 [MozContainer], aWindow=0x7fffbe577240
[GdkWaylandWindow], cr=0x7fffc15bf000) at
/home/komat/tmp676-trunk-gtk3/src3/widget/gtk/nsWindow.cpp:5616
#38 0x00007fffe4d77c77 in expose_event_cb(GtkWidget*, cairo_t*)
(widget=0x7fffbe789070 [MozContainer], cr=0x7fffc15bf000)
at /home/komat/tmp676-trunk-gtk3/src3/widget/gtk/nsWindow.cpp:5639
#39 0x00007ffff4b7837c in _gtk_marshal_BOOLEAN__BOXED
(closure=closure at entry=0x7fffbe576670,
return_value=return_value at entry=0x7fffffffb690,
n_param_values=n_param_values at entry=2,
param_values=param_values at entry=0x7fffffffb6f0,
invocation_hint=invocation_hint at entry=0x7fffffffb670,
marshal_data=marshal_data at entry=0x0) at gtkmarshalers.c:86
#40 0x00007ffff4cdcaaf in gtk_widget_draw_marshaller (closure=0x7fffbe576670,
return_value=0x7fffffffb690, n_param_values=2, param_values=0x7fffffffb6f0,
invocation_hint=0x7fffffffb670, marshal_data=0x0) at gtkwidget.c:937
#44 0x00007ffff1fba43f in <emit signal ??? on instance 0x7fffbe789070
[MozContainer]> (instance=instance at entry=0x7fffbe789070, signal_id=<optimized
out>, detail=detail at entry=0) at gsignal.c:3447
#41 0x00007ffff1f9f3e5 in g_closure_invoke (closure=0x7fffbe576670,
return_value=return_value at entry=0x7fffffffb690, n_param_values=2,
param_values=param_values at entry=0x7fffffffb6f0,
invocation_hint=invocation_hint at entry=0x7fffffffb670)
at gclosure.c:804
#42 0x00007ffff1fb1432 in signal_emit_unlocked_R
(node=node at entry=0x7fffd8b53aa0, detail=detail at entry=0,
instance=instance at entry=0x7fffbe789070,
emission_return=emission_return at entry=0x7fffffffb810,
instance_and_params=instance_and_params at entry=0x7fffffffb6f0) at gsignal.c:3635
#43 0x00007ffff1fb9b8f in g_signal_emit_valist (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>,
var_args=var_args at entry=0x7fffffffb8c0) at gsignal.c:3401
#45 0x00007ffff4ce969a in gtk_widget_draw_internal
(widget=widget at entry=0x7fffbe789070 [MozContainer], cr=cr at entry=0x7fffc15bf000,
clip_to_size=clip_to_size at entry=1) at gtkwidget.c:7008
#46 0x00007ffff4aa0d10 in gtk_container_propagate_draw
(container=container at entry=0x7fffbe551660 [GtkWindow], child=0x7fffbe789070
[MozContainer], cr=cr at entry=0x7fffc15bf000) at gtkcontainer.c:3838
#47 0x00007ffff4aa0e12 in gtk_container_draw (widget=<optimized out>,
cr=0x7fffc15bf000) at gtkcontainer.c:3658
#48 0x00007ffff4cfe146 in gtk_window_draw (widget=0x7fffbe551660 [GtkWindow],
cr=0x7fffc15bf000) at gtkwindow.c:10211
#49 0x00007ffff4ce94a8 in gtk_widget_draw_internal (widget=0x7fffbe551660
[GtkWindow], cr=0x7fffc15bf000, clip_to_size=<optimized out>) at
gtkwidget.c:7015
#50 0x00007ffff4cf4888 in gtk_widget_render (widget=widget at entry=0x7fffbe551660
[GtkWindow], window=0x7fffc1579380 [GdkWayland]
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-bugs/attachments/20161021/8d2b2c8d/attachment.html>
More information about the wayland-bugs
mailing list