[Webkit-unassigned] [Bug 253791] New: `RemoteRenderingBackendProxy` should send all requests asynchronously instead of synchronously

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Mar 12 00:54:23 PST 2023


https://bugs.webkit.org/show_bug.cgi?id=253791

            Bug ID: 253791
           Summary: `RemoteRenderingBackendProxy` should send all requests
                    asynchronously instead of synchronously
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit2
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: darrenmo at google.com
                CC: cdumez at apple.com, kkinnunen at apple.com

Created attachment 465401

  --> https://bugs.webkit.org/attachment.cgi?id=465401&action=review

A sample project demonstrating a deadlock that is possible due to this issue.

`RemoteRenderingBackendProxy` sends requests to the GPU process. At the time of writing, there are 19 requests, 5 of which are synchronous. If possible, those 5 requests should be made asynchronous to avoid deadlock.

Deadlock is possible between the Web process and the GPU process if the GPU process sends a synchronous request to the Web process. (I haven’t looked into whether the GPU process makes any such requests to the Web process.)

Deadlock is possible between the Web process and the UI process when the connection to the GPU process has not yet been established since the UI process facilitates the connection establishment. This was partially addressed in https://bugs.webkit.org/show_bug.cgi?id=239905 by making it so that the Web process creates the connection and sends the connection details asynchronously to the UI process. However, the deadlock is still possible if the Web process synchronously makes a request to the GPU process before the UI process has finished facilitating the connection between the Web process and the GPU process. See the attached sample project for a minimal reproduction of the issue.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230312/a47f458a/attachment-0001.htm>


More information about the webkit-unassigned mailing list