Bug 232139 - RemoteDisplayListRecorder RemoteImageBuffer refcount cycle causes GPUP memory leak
Summary: RemoteDisplayListRecorder RemoteImageBuffer refcount cycle causes GPUP memory...
Status: RESOLVED DUPLICATE of bug 232113
Alias: None
Product: WebKit
Classification: Unclassified
Component: Canvas (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
: 232138 (view as bug list)
Depends on:
Blocks: 229825
  Show dependency treegraph
 
Reported: 2021-10-22 03:23 PDT by Kimmo Kinnunen
Modified: 2021-10-22 10:52 PDT (History)
2 users (show)

See Also:


Attachments
Create leaks with ImageBitmap (18.64 KB, application/zip)
2021-10-22 03:24 PDT, Kimmo Kinnunen
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kimmo Kinnunen 2021-10-22 03:23:33 PDT
RemoteDisplayListRecorder RemoteImageBuffer refcount cycle causes GPUP memory leak

Contributing factors:
RemoteDisplayListRecorder refs RemoteImageBuffer refs RemoteDisplayListRecorder

RemoteDisplayListRecorderProxy does not send destruction notification

GPUP side does not remove the RemoteDisplayListRecorder ever.

Note:
Due to bug 187964 the test case is hard to repro.
After testcase runs, open inspector to run gc.
Comment 1 Kimmo Kinnunen 2021-10-22 03:24:05 PDT
Created attachment 442144 [details]
Create leaks with ImageBitmap
Comment 2 Kimmo Kinnunen 2021-10-22 03:45:06 PDT
*** Bug 232138 has been marked as a duplicate of this bug. ***
Comment 3 Wenson Hsieh 2021-10-22 10:52:42 PDT
Good catch. RemoteImageBuffer owns its RemoteDisplayListRecorder, so RemoteDisplayListRecorder should have a weak back-pointer to its RemoteImageBuffer.

I plan to fix this along with https://bugs.webkit.org/show_bug.cgi?id=232113.

*** This bug has been marked as a duplicate of bug 232113 ***