Bug 238618

Summary: RemoteRenderingBackendProxy fails to maintain correct state when gpu process crashes and upon deletion
Product: WebKit Reporter: Kimmo Kinnunen <kkinnunen>
Component: CanvasAssignee: Kimmo Kinnunen <kkinnunen>
Status: RESOLVED FIXED    
Severity: Normal CC: dino, Morningstar, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=238624
Bug Depends on:    
Bug Blocks: 237674, 238516    
Attachments:
Description Flags
Patch
none
Patch
none
For landing none

Description Kimmo Kinnunen 2022-03-31 11:06:57 PDT
RemoteRenderingBackendProxy fails to maintain correct state when gpu process crashes and upon deletion
Comment 1 Kimmo Kinnunen 2022-03-31 11:18:23 PDT
Created attachment 456257 [details]
Patch
Comment 2 Simon Fraser (smfr) 2022-03-31 12:12:04 PDT
Comment on attachment 456257 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=456257&action=review

> Source/WebKit/ChangeLog:3
> +        RemoteRenderingBackendProxy fails to maintain correct state when gpu process crashes and upon deletion

But this doesn't fix the issue where the GPU Process crashes while we're blocked on the m_wakeUpSemaphore, right?

> Source/WebKit/Platform/IPC/MessageReceiveQueueMap.cpp:64
> +            ALWAYS_LOG_WITH_STREAM(stream << "MessageReceiveQueueMap::addImpl - adding duplicate any id receiver " << static_cast<uint8_t>(receiverName));

When debugging I wanted a TextStream& operator<<(TextStream&, ReceiverName). Maybe we should add one, or do some kind of IPC::description() thing that makes them easy to print.
Comment 3 Kimmo Kinnunen 2022-03-31 12:17:06 PDT
Created attachment 456268 [details]
Patch
Comment 4 Kimmo Kinnunen 2022-03-31 12:23:36 PDT
> But this doesn't fix the issue where the GPU Process crashes while we're blocked on the m_wakeUpSemaphore, right?

No, this doesn't address it. Will work on it next week.

>> Source/WebKit/Platform/IPC/MessageReceiveQueueMap.cpp:64
>> +            ALWAYS_LOG_WITH_STREAM(stream << "MessageReceiveQueueMap::addImpl - adding duplicate any id receiver " << static_cast<uint8_t>(receiverName));

In fact this was a botched hunk that belonged to previous patch.

> When debugging I wanted a TextStream& operator<<(TextStream&, ReceiverName). Maybe we should add one, or do some kind of IPC::description() thing that makes them easy to print.

Added bug 238624, can do that tomorrow.
Comment 5 Kimmo Kinnunen 2022-04-04 04:42:32 PDT
Created attachment 456558 [details]
For landing
Comment 6 EWS 2022-04-04 08:46:48 PDT
Committed r292289 (249187@main): <https://commits.webkit.org/249187@main>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456558 [details].
Comment 7 Radar WebKit Bug Importer 2022-04-04 08:47:17 PDT
<rdar://problem/91241701>
Comment 8 Said Abou-Hallawa 2022-04-15 18:22:05 PDT
*** Bug 237295 has been marked as a duplicate of this bug. ***