Intermittent leakcheck | rdd 3544 bytes leaked (AbstractThread, ActorLifecycleProxy, CondVar, IPC::Channel, Mutex, ...)
Categories
(Core :: Audio/Video: Playback, defect, P1)
Tracking
()
People
(Reporter: intermittent-bug-filer, Assigned: jya)
References
Details
(Keywords: intermittent-failure)
Attachments
(6 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
Filed by: btara [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=309830807&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/Cnz-C20qSfqV3BlBQP8I0Q/runs/0/artifacts/public/logs/live_backing.log
...
[task 2020-07-15T10:11:42.336Z] 10:11:42 INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, rdd process 148
[task 2020-07-15T10:11:42.337Z] 10:11:42 INFO -
[task 2020-07-15T10:11:42.338Z] 10:11:42 INFO - |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2020-07-15T10:11:42.338Z] 10:11:42 INFO - | | Per-Inst Leaked| Total Rem|
[task 2020-07-15T10:11:42.339Z] 10:11:42 INFO - 0 |TOTAL | 23 3544| 5739 16|
[task 2020-07-15T10:11:42.340Z] 10:11:42 INFO - 1 |AbstractThread | 40 40| 3 1|
[task 2020-07-15T10:11:42.340Z] 10:11:42 INFO - 2 |ActorLifecycleProxy | 32 32| 5 1|
[task 2020-07-15T10:11:42.341Z] 10:11:42 INFO - 14 |CondVar | 64 128| 23 2|
[task 2020-07-15T10:11:42.342Z] 10:11:42 INFO - 25 |IPC::Channel | 8 8| 4 1|
[task 2020-07-15T10:11:42.342Z] 10:11:42 INFO - 45 |Mutex | 80 240| 277 3|
[task 2020-07-15T10:11:42.343Z] 10:11:42 INFO - 61 |PRemoteDecoderManagerParent | 688 688| 1 1|
[task 2020-07-15T10:11:42.344Z] 10:11:42 INFO - 74 |RefCountedMonitor | 152 152| 4 1|
[task 2020-07-15T10:11:42.344Z] 10:11:42 INFO - 76 |RemoteDecoderManagerParent | 736 1472| 2 2|
[task 2020-07-15T10:11:42.345Z] 10:11:42 INFO - 91 |StoreRef | 16 16| 4 1|
[task 2020-07-15T10:11:42.345Z] 10:11:42 INFO - 97 |TaskQueue | 336 336| 2 1|
[task 2020-07-15T10:11:42.346Z] 10:11:42 INFO - 128 |ipc::MessageChannel | 392 392| 4 1|
[task 2020-07-15T10:11:42.346Z] 10:11:42 INFO - 129 |ipc::MessageChannel::DispatchOnChannel| 40 40| 4 1|
[task 2020-07-15T10:11:42.346Z] 10:11:42 INFO -
[task 2020-07-15T10:11:42.346Z] 10:11:42 INFO - nsTraceRefcnt::DumpStatistics: 151 entries
[task 2020-07-15T10:11:42.347Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 AbstractThread
[task 2020-07-15T10:11:42.347Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 ActorLifecycleProxy
[task 2020-07-15T10:11:42.347Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 2 CondVar
[task 2020-07-15T10:11:42.347Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 IPC::Channel
[task 2020-07-15T10:11:42.348Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 3 Mutex
[task 2020-07-15T10:11:42.348Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 PRemoteDecoderManagerParent
[task 2020-07-15T10:11:42.348Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 RefCountedMonitor
[task 2020-07-15T10:11:42.348Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 2 RemoteDecoderManagerParent
[task 2020-07-15T10:11:42.349Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 StoreRef
[task 2020-07-15T10:11:42.349Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 TaskQueue
[task 2020-07-15T10:11:42.349Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 ipc::MessageChannel
[task 2020-07-15T10:11:42.349Z] 10:11:42 INFO - TEST-INFO | leakcheck | rdd leaked 1 ipc::MessageChannel::DispatchOnChannel
[task 2020-07-15T10:11:42.350Z] 10:11:42 INFO - TEST-UNEXPECTED-FAIL | leakcheck | rdd 3544 bytes leaked (AbstractThread, ActorLifecycleProxy, CondVar, IPC::Channel, Mutex, ...)
[task 2020-07-15T10:11:42.350Z] 10:11:42 INFO -
...
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
RemoteDecoderManagerParent
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 8•5 years ago
|
||
This seems to perma-fail here:
https://treeherder.mozilla.org/#/jobs?repo=try&author=jgilbert%40mozilla.com&selectedTaskRun=KesinwHCQhypjZwhUafHYA.0
Comment hidden (Intermittent Failures Robot) |
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment 11•5 years ago
|
||
Updated•5 years ago
|
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
bugherder |
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 15•5 years ago
|
||
Background information on what is happening here.
The parent process control the RDDParent via the PRDD protocol.
Then we have content processes potentially using a RemoteDecoderManagerChild/Parent via the PRemoteDecoderManager protocol.
When shutting down, the RDDChild will be shutdown when XPCOM shuts down, which will instruct the RDDParent to shutdown the RDD process.
This can happen before each content process have completed shutdown and closed their respective PRemoteDecoderManager channel.
All those RemoteDecoderManagerParent waiting to be closed will be reported as leaking. A RemoteDecoderManagerParent manage a taskqueue, and an array of images.
The GPU process is leaking RemoteDecoderManagerParent in exactly the same fashion, however it has a threshold set to 10kB and so the leaks aren't apparent. But they are definitely there.
We would need to have a mechanism similar to the MediaShutdownMonitor in the RDD and GPU process, so that even when the GPUParent/RDDParent receive an intstruction to shutdown their process, they won't act on it until all registered RemoteDecoderManagerParent actors have been closed.
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 18•5 years ago
|
||
This reverts commit 056bbc57ca7c
Assignee | ||
Comment 19•5 years ago
|
||
The RDD process gets shutdown following a NS_XPCOM_SHUTDOWN_OBSERVER_ID notification.
Notifications are processed in LIFO order, since the RDD process is started on demand it would have typically be registered after a content process.
We must ensure that the RDD get shutdown after all content processes so that it can receive notifications that the RemoteDecoderManagerChilds are shutting down.
Depends on D90484
Assignee | ||
Comment 20•5 years ago
|
||
Depends on D90485
Assignee | ||
Comment 21•5 years ago
|
||
We unfortunately can't use the AsyncShutdownService in either the GPU or RDD process.
So we add a little utility class AsyncBlockers that will resolve its promise once all services have deregistered from it.
We use it to temporily suspend the RDDParent or GPUParent from killing the process, up to 10s.
This allows for cleaner shutdown as the parent process doesn't guarantee the order in which processes are killed (even though it should).
Depends on D90486
Assignee | ||
Comment 22•5 years ago
|
||
And fix thread-safety access to sRemoteDecoderManagerChildThread static while at it.
Depends on D90487
Comment 23•5 years ago
|
||
Comment 24•5 years ago
|
||
Backed out 4 changesets (bug 1653060) for causing mochitest assertion failures.
https://hg.mozilla.org/integration/autoland/rev/bc025e45723c7374021ef823168683103f5f1eb9
Failure log:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=316062508&repo=autoland&lineNumber=1749
Assignee | ||
Comment 25•5 years ago
|
||
For some reasons, P5 didn't get push which fixed those assertions.
Comment 26•5 years ago
|
||
Comment 27•5 years ago
|
||
bugherder |
Assignee | ||
Updated•5 years ago
|
Comment hidden (Intermittent Failures Robot) |
Description
•