Closed Bug 1712202 Opened 4 years ago Closed 4 years ago

about:webrtc accumulates large amount of orphan-nodes

Categories

(Core :: WebRTC, defect, P3)

Desktop
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1703584
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.

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.

Severity: normal → S3
Priority: -- → P3

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.

Keywords: regression
Regressed by: 976669
Has Regression Range: --- → yes
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.