<html>
<head>
<base href="https://bugs.freedesktop.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 - [Firefox/Wayland] multithread deadlock at eglSwapBuffers() / wl_display_dispatch_queue()"
href="https://bugs.freedesktop.org/show_bug.cgi?id=106753">106753</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[Firefox/Wayland] multithread deadlock at eglSwapBuffers() / wl_display_dispatch_queue()
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>18.0
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>EGL/Wayland
</td>
</tr>
<tr>
<th>Assignee</th>
<td>wayland-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>stransky@redhat.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>When eglSwapBuffers() is called from non-main thread but on the same display as
it's operated Gtk+/main loop the eglSwapBuffers() freezes at
wl_display_poll()/poll() on the display fd.
Mozilla bugzilla bug:
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1464823">https://bugzilla.mozilla.org/show_bug.cgi?id=1464823</a>
backtrace of the lock (Compositor thread):
#0 0x00007ffff6da6589 in poll () at /lib64/libc.so.6
#1 0x00007ffff28776a9 in poll (__timeout=-1, __nfds=1, __fds=0x7fffc6f65ce0)
at /usr/include/bits/poll2.h:46
#2 0x00007ffff28776a9 in wl_display_poll
(display=display@entry=0x7ffff6a61440, events=events@entry=1)
at src/wayland-client.c:1717
#3 0x00007ffff287913c in wl_display_dispatch_queue (display=0x7ffff6a61440,
queue=0x7fffb49ec380)
at src/wayland-client.c:1790
#4 0x00007fffc19650bb in () at /lib64/libEGL_mesa.so.0
#5 0x00007fffc19560ea in eglSwapBuffers () at /lib64/libEGL_mesa.so.0
#6 0x00007fffe18010bd in mozilla::gl::GLLibraryEGL::fSwapBuffers(void*, void*)
const (this=0x7fffeb8c5780 <mozilla::gl::sEGLLibrary>, dpy=0x7fffc2db2800,
surface=0x7fffade57000) at
/home/komat/tmp676-trunk-gtk3/src2/gfx/gl/GLLibraryEGL.h:229
#7 0x00007fffe1811ad8 in mozilla::gl::GLContextEGL::SwapBuffers()
(this=0x7fffacc87000)
at /home/komat/tmp676-trunk-gtk3/src2/gfx/gl/GLContextProviderEGL.cpp:501
#8 0x00007fffe18e4dc2 in mozilla::layers::CompositorOGL::EndFrame()
(this=0x7fffade6d400)
at
/home/komat/tmp676-trunk-gtk3/src2/gfx/layers/opengl/CompositorOGL.cpp:1771
[...]</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>