WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 239399
Bug 239496
[GPUProcess][Unix] RemoteRenderingBackendProxy::DidCreateWakeUpSemaphoreForDisplayListStream is never sent
https://bugs.webkit.org/show_bug.cgi?id=239496
Summary
[GPUProcess][Unix] RemoteRenderingBackendProxy::DidCreateWakeUpSemaphoreForDi...
Zan Dobersek
Reported
2022-04-19 07:29:45 PDT
Currently, the RemoteRenderingBackendProxy::DidCreateWakeUpSemaphoreForDisplayListStream() message is dispatched in the RemoteRenderingBackend constructor before the underlying connection is open. The connection exists, it's valid, just not open, so the message isn't sent but it's still kept in the outgoing messages queue. There's no other message dispatched on this connection afterwards, meaning the queue doesn't get flushed. So the initial message is never sent, which then causes problems down the line in GPUProcess execution. It's possible to rework things so that the message is sent after the connection is opened, but there's also the question of whether the Unix implementation of IPC::Connection should handle this situation somewhat better.
Attachments
The workaround
(3.58 KB, patch)
2022-04-19 07:33 PDT
,
Zan Dobersek
no flags
Details
Formatted Diff
Diff
Patch
(4.30 KB, patch)
2022-04-19 08:14 PDT
,
Zan Dobersek
kkinnunen
: review-
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Zan Dobersek
Comment 1
2022-04-19 07:33:30 PDT
Created
attachment 457890
[details]
The workaround
Zan Dobersek
Comment 2
2022-04-19 08:14:36 PDT
Created
attachment 457892
[details]
Patch
Zan Dobersek
Comment 3
2022-04-19 08:15:44 PDT
(In reply to Zan Dobersek from
comment #2
)
> Created
attachment 457892
[details]
> Patch
Turned it into a proper patch. It also includes the RemoteRenderingBackend::startListeningForIPC() method being folded into the constructor.
Kimmo Kinnunen
Comment 4
2022-04-20 12:03:39 PDT
Comment on
attachment 457892
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=457892&action=review
> Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:107 > m_streamConnection->open();
This line starts invoking the virtual functions from the other thread. The vptr of the object is set up by the constructor and is not thread-safe, so this cannot happen in the constructor. The bug was fixed in
bug 239399
Kimmo Kinnunen
Comment 5
2022-04-20 12:03:48 PDT
*** This bug has been marked as a duplicate of
bug 239399
***
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug