about:webrtc accumulates large amount of orphan-nodes
Categories
(Core :: WebRTC, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox88 | --- | wontfix |
firefox89 | --- | wontfix |
firefox90 | --- | wontfix |
firefox91 | --- | fix-optional |
People
(Reporter: heftig, Unassigned)
References
(Regression, )
Details
(Keywords: regression)
I've left about:webrtc open after debugging (it only contains a single, dead peerconnection), and it eventually dominated the main process' memory usage:
3,207.24 MB (100.0%) -- explicit
├──1,949.76 MB (60.79%) -- window-objects
│ ├──1,918.50 MB (59.82%) -- top(about:webrtc, id=997)/active/window(about:webrtc)
│ │ ├──1,904.49 MB (59.38%) -- dom
│ │ │ ├──1,897.70 MB (59.17%) ── orphan-nodes
│ │ │ └──────6.79 MB (00.21%) -- (4 tiny)
│ │ │ ├──4.99 MB (00.16%) ── text-nodes
│ │ │ ├──1.79 MB (00.06%) ── element-nodes
│ │ │ ├──0.01 MB (00.00%) ── other
│ │ │ └──0.00 MB (00.00%) ── comment-nodes
│ │ └─────14.01 MB (00.44%) -- (3 tiny)
│ │ ├──12.54 MB (00.39%) ++ js-realm([System Principal], about:webrtc)
│ │ ├───1.47 MB (00.05%) ++ layout
│ │ └───0.00 MB (00.00%) ── property-tables
│ └─────31.26 MB (00.97%) ++ (7 tiny)
After opening the (extremely large) connection log and then clearing it, the situation didn't improve:
3,511.83 MB (100.0%) -- explicit
├──2,280.72 MB (64.94%) -- window-objects
│ ├──2,146.28 MB (61.12%) -- top(about:webrtc, id=997)/active/window(about:webrtc)
│ │ ├──2,131.25 MB (60.69%) -- dom
│ │ │ ├──2,130.73 MB (60.67%) ── orphan-nodes
│ │ │ └──────0.52 MB (00.01%) -- (4 tiny)
│ │ │ ├──0.28 MB (00.01%) ── element-nodes
│ │ │ ├──0.22 MB (00.01%) ── text-nodes
│ │ │ ├──0.01 MB (00.00%) ── other
│ │ │ └──0.00 MB (00.00%) ── comment-nodes
│ │ └─────15.03 MB (00.43%) -- (3 tiny)
│ │ ├──10.43 MB (00.30%) ++ layout
│ │ ├───4.59 MB (00.13%) ++ js-realm([System Principal], about:webrtc)
│ │ └───0.00 MB (00.00%) ── property-tables
After closing the tab:
1,400.78 MB (100.0%) -- explicit
├────295.12 MB (21.07%) -- gfx
I went looking for a problem because I noticed the browser being sluggish and also eating large amounts of CPU, presumably attempting to collect garbage.
Comment 1•4 years ago
|
||
I can confirm this. The memory used by about:webrtc seems to continue to grow even after all PCs are closed, and all PC details are hidden. Let me see if I can find a regression window.
Comment 2•4 years ago
|
||
An orphan node is a DOM node that is not in a currently active document that is being held alive via JS. The usual cause is an infinite scrolling list where items that scroll off the page aren't shown any more, but something keeps a reference to them.
One way to investigate this would be to get a GC log for the process, look through there for one of the orphan nodes, then use find_roots.py to get the retaining path for the node.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Description
•