Child process leaks when running GMP

RESOLVED WONTFIX

Status

()

Core
Audio/Video
RESOLVED WONTFIX
3 years ago
3 years ago

People

(Reporter: mccr8, Unassigned)

Tracking

(Blocks: 1 bug)

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [MemShrink:P2])

(Reporter)

Description

3 years ago
At least some tests involving GMP seem to run in E10s mode, despite it not really being set up to work there.  However, in the Mochitest runs where the GMP service is used, we do leak some additional objects (beyond the standard set of compositor objects we leak in every mochitest):

18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 12 ChildDNSRecord (480 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 CipherSuiteChangeObserver (12 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 18 DNSListenerProxy (432 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 18 DNSRequestChild (1296 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 DataChannelShutdown (12 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 GMPParent (704 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 GeckoMediaPluginService (56 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 4 Mutex (140 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 18 NrIceResolver::PendingResolution (720 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 18 PDNSRequestChild (504 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 PGMPParent (424 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 2 ReentrantMonitor (72 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 2 RefCountedTask (48 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 19 WeakReference<MessageListener> (168 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 ipc::MessageChannel (852 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 nsLocalFile (124 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 18 nsMainThreadPtrHolder<T> (216 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 nsSocketTransportService (164 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 27 nsStringBuffer (216 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 33 nsTArray_base (156 bytes)
18:27:03     INFO -  TEST-INFO | leakcheck | tab process: leaked 1 nsThread (280 bytes)

This could just be due to us not running the teardown code for profile-change-teardown in a child process.  Maybe that can be changed to listen for some other shutdown-y thing.

Or maybe this is just hopeless and we'll have to disable our way to green until e10s GMP is fixed. Note: we hit this same problem in non-E10s M3 during dom/media/tests/ipc/test_ipc.html
(Reporter)

Comment 1

3 years ago
Currently, this is leaking about 11kb worth of stuff, an amount that seems to be slowly growing over time. When it is fixed, we can reduce the leak threshold to around 5kb. This can be done by changing the value of the "tab" entry in options.leakThresholds in testing/mochitest/mochitest_options.py
(Reporter)

Comment 2

3 years ago
The real fix for this is probably bug 1057908, which will keep us from running GMPService in the child process at all, so this leak by itself is not worth spending time on.
Depends on: 1057908
(Reporter)

Updated

3 years ago
Whiteboard: [MemShrink]
(Reporter)

Updated

3 years ago
Assignee: continuation → nobody
Whiteboard: [MemShrink] → [MemShrink:P2]
(Reporter)

Comment 3

3 years ago
I think this is a WONTFIX, because the plan is to never run GMPService in a child process, so the leaks running in this configuration will just go away once that work is done.
Status: NEW → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.