Bug 238618 - RemoteRenderingBackendProxy fails to maintain correct state when gpu process crashes and upon deletion
Summary: RemoteRenderingBackendProxy fails to maintain correct state when gpu process ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Canvas (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Kimmo Kinnunen
URL:
Keywords: InRadar
: 237295 (view as bug list)
Depends on:
Blocks: 237674 238516
  Show dependency treegraph
 
Reported: 2022-03-31 11:06 PDT by Kimmo Kinnunen
Modified: 2022-04-26 05:41 PDT (History)
4 users (show)

See Also:


Attachments
Patch (7.43 KB, patch)
2022-03-31 11:18 PDT, Kimmo Kinnunen
no flags Details | Formatted Diff | Diff
Patch (6.42 KB, patch)
2022-03-31 12:17 PDT, Kimmo Kinnunen
no flags Details | Formatted Diff | Diff
For landing (6.38 KB, patch)
2022-04-04 04:42 PDT, Kimmo Kinnunen
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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. ***