[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