| Summary: | IPC stream work queues lack autoreleasepools | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Kimmo Kinnunen <kkinnunen> | ||||||||
| Component: | WebKit2 | Assignee: | Kimmo Kinnunen <kkinnunen> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | cdumez, kkinnunen, simon.fraser, webkit-bug-importer | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | WebKit Nightly Build | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Kimmo Kinnunen
2022-05-19 07:31:31 PDT
Created attachment 459610 [details]
Patch
Comment on attachment 459610 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=459610&action=review > COMMIT_MESSAGE:8 > +Add the autorelease pool to each iteration of IPC stream message > +processing. Would be nice to explain what Obj-C objects were accumulating, and what kinds of pages benefit from this change. Created attachment 459622 [details]
Patch
Created attachment 459623 [details]
Patch
Added some explanation, unfortunately I don't have very solid data.
I haven't seen any pages that would benefit from fixing the leaks, as shadowed by the orders of magnitude bigger problems.
The leaks are form of
12492 (1.77M) CONTENT: NSDictionary ObjC CoreFoundation
+ 12492 (1.77M) _malloc_zone_calloc (in libsystem_malloc.dylib) + 0 [0x1b7ae16c0]
+ 12492 (1.77M) class_createInstance (in libobjc.A.dylib) + 64 [0x1be78aee8]
+ 12492 (1.77M) __CFAllocateObject (in CoreFoundation) + 24 [0x1a5155e14]
+ 11757 (1.74M) __NSDictionaryI_new (in CoreFoundation) + 144 [0x1a514e0f0]
+ ! 11583 (1.70M) +[NSDictionary dictionaryWithObjects:forKeys:count:] (in CoreFoundation) + 52 [0x1a519fb50]
+ ! : 3463 (487K) WebCore::optionsForBiplanarSurface(WebCore::IntSize, unsigned int, unsigned long, unsigned long) (in WebCore) + 332 [0x114109cb4]
+ ! : | 3463 (487K) WebCore::IOSurface::IOSurface(WebCore::IntSize, WebCore::IntSize, WebCore::DestinationColorSpace const&, WebCore::IOSurface::Format, boo
l&) (in WebCore) + 232 [0x11344df1c]
+ ! : | 3463 (487K) WebCore::IOSurface::create(WebCore::IOSurfacePool*, WebCore::IntSize, WebCore::IntSize, WebCore::DestinationColorSpace const&, WebCore
::IOSurface::Format) (in WebCore) + 92 [0x11344dce0]
+ ! : | 3463 (487K) WebKit::ImageBufferShareableMappedIOSurfaceBackend::create(WebCore::ImageBufferBackend::Parameters const&, WebCore::ImageBuffer::Cre
ationContext const&) (in WebKit) + 136 [0x1064dc4f0]
+ ! : | 3463 (487K) WTF::RefPtr<WebKit::RemoteImageBuffer<WebKit::ImageBufferShareableMappedIOSurfaceBackend>, WTF::RawPtrTraits<WebKit::RemoteImageBu
ffer<WebKit::ImageBufferShareableMappedIOSurfaceBackend> >, WTF::DefaultRefDerefTraits<WebKit::RemoteImageBuffer<WebKit::ImageBufferShareableMappedIOSurfaceBackend> > >
WebCore::ConcreteImageBuffer<WebKit::ImageBufferShareableMappedIOSurfaceBackend>::create<WebKit::RemoteImageBuffer<WebKit::ImageBufferShareableMappedIOSurfaceBackend>,
WebKit::RemoteRenderingBackend&, WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >&>(WebCore::FloatSize const&, float, WebCor
e::DestinationColorSpace const&, WebCore::PixelFormat, WebCore::RenderingPurpose, WebCore::ImageBuffer::CreationContext const&, WebKit::RemoteRenderingBackend&, WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >&) (in WebKit) + 104 [0x10617649c]
+ ! : | 3463 (487K) WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier(WebCore::FloatSize const&, WebCore::RenderingMode, WebCore::RenderingPurpose, float, WebCore::DestinationColorSpace const&, WebCore::PixelFormat, WebCore::ProcessQualified<WTF::ObjectIdentifier<WebCore::RenderingResourceIdentifierType> >) (in WebKit) + 80 [0x106173db4]
(this is result of intensive scrolling and then idling around)
Committed r294628 (250854@main): <https://commits.webkit.org/250854@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 459623 [details]. |