<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>