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 222960
222879
[GPU Process] RemoteImageBufferProxy should not call flushDrawingContext() in its destructor
https://bugs.webkit.org/show_bug.cgi?id=222879
Summary
[GPU Process] RemoteImageBufferProxy should not call flushDrawingContext() in...
Said Abou-Hallawa
Reported
2021-03-07 00:57:48 PST
This was done mainly to restore the GraphicsContext of RemoteImageBuffer to its clean state before releasing it. However this may lead to the following crash: 0 com.apple.WebKit 0x000000010124d7a3 WTFCrashWithInfo(int, char const*, char const*, int) + 19 1 com.apple.WebKit 0x0000000101745c5d WebKit::WebProcess::ensureGPUProcessConnection() + 683 2 com.apple.WebKit 0x0000000101763df5 WebKit::RemoteRenderingBackendProxy::messageSenderConnection() const + 17 3 com.apple.WebKit 0x0000000101280fd5 IPC::MessageSender::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::OptionSet<IPC::SendOption>, WTF::Optional<std::__1::pair<WTF::CompletionHandler<void (IPC::Decoder*)>, unsigned long long> >&&) + 29 4 com.apple.WebKit 0x00000001017b0276 bool IPC::MessageSender::send<Messages::RemoteRenderingBackend::WakeUpAndApplyDisplayList>(Messages::RemoteRenderingBackend::WakeUpAndApplyDisplayList const&, unsigned long long, WTF::OptionSet<IPC::SendOption>) + 106 5 com.apple.WebKit 0x00000001017642da WebKit::RemoteRenderingBackendProxy::sendDeferredWakeupMessageIfNeeded() + 110 6 com.apple.WebKit 0x00000001017a9781 WebKit::RemoteImageBufferProxy<WebKit::ImageBufferShareableMappedIOSurfaceBackend>::flushDrawingContextAsync() + 133 7 com.apple.WebKit 0x00000001017a96e6 WebKit::RemoteImageBufferProxy<WebKit::ImageBufferShareableMappedIOSurfaceBackend>::flushDrawingContext() + 34 8 com.apple.WebKit 0x00000001017aa41e WebKit::RemoteImageBufferProxy<WebKit::ImageBufferShareableMappedIOSurfaceBackend>::~RemoteImageBufferProxy() + 82 9 com.apple.WebKit 0x00000001017a95f0 WebKit::RemoteImageBufferProxy<WebKit::ImageBufferShareableMappedIOSurfaceBackend>::~RemoteImageBufferProxy() + 14 This blocks enabling GPU Process for 2D canvas for web-platform-tests/html/canvas/element/line-styles/2d.line.cap.butt.html.
Attachments
Add attachment
proposed patch, testcase, etc.
Said Abou-Hallawa
Comment 1
2021-03-07 00:58:53 PST
<
rdar://problem/73610005
>
Said Abou-Hallawa
Comment 2
2021-03-12 10:59:07 PST
This crash was happening because ImageBitmap was destroying its RemoteImageBufferProxy in a worker thread. We have to send at least a message from the WebP to the GPUP to destroy the corresponding RemoteImageBuffer. But this should happen in the main thread only. This is already fixed in
r274164
. *** This bug has been marked as a duplicate of
bug 222960
***
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