<html>
<head>
<base href="https://bugzilla.gnome.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - [Wayland] crash at gdk_flush() called from "draw" signal handler during resize"
href="https://bugzilla.gnome.org/show_bug.cgi?id=773307">773307</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[Wayland] crash at gdk_flush() called from "draw" signal handler during resize
</td>
</tr>
<tr>
<th>Classification</th>
<td>Platform
</td>
</tr>
<tr>
<th>Product</th>
<td>gtk+
</td>
</tr>
<tr>
<th>Version</th>
<td>3.22.x
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>Normal
</td>
</tr>
<tr>
<th>Component</th>
<td>Backend: Wayland
</td>
</tr>
<tr>
<th>Assignee</th>
<td>gtk-bugs@gtk.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>stransky@redhat.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>gtk-bugs@gtk.org
</td>
</tr>
<tr>
<th>CC</th>
<td>rob@robster.org.uk, wayland-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>GNOME version</th>
<td>---
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=338172" name="attach_338172" title="testcase - resize the window until crash">attachment 338172</a> <a href="attachment.cgi?id=338172&action=edit" title="testcase - resize the window until crash">[details]</a></span>
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:
</pre>
<p class="trace_link" title="See Full Trace">
<a class="trace_toggle_box" href="#"
title="Expand/Collapse Trace"
onclick="traceparser_toggle_trace(this, 236756); return false;">+</a>
<a href="page.cgi?id=traceparser/trace.html&trace_id=236756">Trace
236756</a></p>
<table border="0" cellpadding="0" cellspacing="0"><tr><td>
<div class="trace bz_default_hidden"
id="trace_236756">
<ul class="frames">
<li class="frame ">
<span class="frame_number">#4</span>
<span class="frame_function">drop_cairo_surfaces</span>
<div class="frame_file_container">
at <span class="frame_file">gdkwindow-wayland.c</span>
line
<span class="frame_line">273</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#5</span>
<span class="frame_function">gdk_wayland_window_update_size</span>
<div class="frame_file_container">
at <span class="frame_file">gdkwindow-wayland.c</span>
line
<span class="frame_line">333</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#6</span>
<span class="frame_function">gdk_wayland_window_configure</span>
<div class="frame_file_container">
at <span class="frame_file">gdkwindow-wayland.c</span>
line
<span class="frame_line">1025</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#7</span>
<span class="frame_function">xdg_surface_configure</span>
<div class="frame_file_container">
at <span class="frame_file">gdkwindow-wayland.c</span>
line
<span class="frame_line">1390</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#8</span>
<span class="frame_function">ffi_call_unix64</span>
<div class="frame_file_container">
at <span class="frame_file">../src/x86/unix64.S</span>
line
<span class="frame_line">76</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#9</span>
<span class="frame_function">ffi_call</span>
<div class="frame_file_container">
at <span class="frame_file">../src/x86/ffi64.c</span>
line
<span class="frame_line">525</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#10</span>
<span class="frame_function">wl_closure_invoke</span>
<div class="frame_file_container">
at <span class="frame_file">src/connection.c</span>
line
<span class="frame_line">935</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#11</span>
<span class="frame_function">dispatch_event</span>
<div class="frame_file_container">
at <span class="frame_file">src/wayland-client.c</span>
line
<span class="frame_line">1310</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#12</span>
<span class="frame_function">dispatch_queue</span>
<div class="frame_file_container">
at <span class="frame_file">src/wayland-client.c</span>
line
<span class="frame_line">1456</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#13</span>
<span class="frame_function">wl_display_dispatch_queue_pending</span>
<div class="frame_file_container">
at <span class="frame_file">src/wayland-client.c</span>
line
<span class="frame_line">1698</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#14</span>
<span class="frame_function">wl_display_roundtrip_queue</span>
<div class="frame_file_container">
at <span class="frame_file">src/wayland-client.c</span>
line
<span class="frame_line">1121</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#15</span>
<span class="frame_function">gdk_flush</span>
<div class="frame_file_container">
at <span class="frame_file">gdkdisplay.c</span>
line
<span class="frame_line">598</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#37</span>
<span class="frame_function">draw_window_of_widget(_GtkWidget*, _GdkWindow*, _cairo*)</span>
<div class="frame_file_container">
at <span class="frame_file">/home/komat/tmp676-trunk-gtk3/src3/widget/gtk/nsWindow.cpp</span>
line
<span class="frame_line">5616</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#38</span>
<span class="frame_function">expose_event_cb(GtkWidget*, cairo_t*)</span>
<div class="frame_file_container">
at <span class="frame_file">/home/komat/tmp676-trunk-gtk3/src3/widget/gtk/nsWindow.cpp</span>
line
<span class="frame_line">5639</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#39</span>
<span class="frame_function">_gtk_marshal_BOOLEAN__BOXED</span>
<div class="frame_file_container">
at <span class="frame_file">gtkmarshalers.c</span>
line
<span class="frame_line">86</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#40</span>
<span class="frame_function">gtk_widget_draw_marshaller</span>
<div class="frame_file_container">
at <span class="frame_file">gtkwidget.c</span>
line
<span class="frame_line">937</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#44</span>
<span class="frame_function"><emit signal ??? on instance 0x7fffbe789070 [MozContainer]></span>
<div class="frame_file_container">
at <span class="frame_file">gsignal.c</span>
line
<span class="frame_line">3447</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#45</span>
<span class="frame_function">gtk_widget_draw_internal</span>
<div class="frame_file_container">
at <span class="frame_file">gtkwidget.c</span>
line
<span class="frame_line">7008</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#46</span>
<span class="frame_function">gtk_container_propagate_draw</span>
<div class="frame_file_container">
at <span class="frame_file">gtkcontainer.c</span>
line
<span class="frame_line">3838</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#47</span>
<span class="frame_function">gtk_container_draw</span>
<div class="frame_file_container">
at <span class="frame_file">gtkcontainer.c</span>
line
<span class="frame_line">3658</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#48</span>
<span class="frame_function">gtk_window_draw</span>
<div class="frame_file_container">
at <span class="frame_file">gtkwindow.c</span>
line
<span class="frame_line">10211</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#49</span>
<span class="frame_function">gtk_widget_draw_internal</span>
<div class="frame_file_container">
at <span class="frame_file">gtkwidget.c</span>
line
<span class="frame_line">7015</span>
</div>
</li>
<li class="frame ">
<span class="frame_number">#50</span>
<span class="frame_function">gtk_widget_render</span>
</li>
</ul>
</div>
</td></tr></table>
<pre class="bz_comment_text" >
[GtkWindow], window=0x7fffc1579380 [GdkWayland]</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>