[Meta] Blob: on GamesRadar consumes entire cpu core when the active tab.
Categories
(Core :: Performance, defect, P3)
Tracking
()
People
(Reporter: danialhorton, Unassigned)
References
Details
(Keywords: meta)
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.3
Steps to reproduce:
Navigated to Gamesradar.com or any article on the gamesradar site.
Watch the process list in task manager.
Actual results:
A content process began consuming cpu indefinitely, memory may consume several gigabytes if left open for a period of time, particularly on any of the articles embedding gifycat players.
Expected results:
It definitely shouldn't eternally chew a cpu core,
I have confirmed this across several firefox versions (and waterfox) and fresh profiles, and narrowed it down to the site being allowed to load a Blob:
Reporter | ||
Comment 1•4 years ago
|
||
Comment 2•4 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Reporter | ||
Comment 3•4 years ago
|
||
I doubt it since the issue manifests regardless of the use of webrender.
Reporter | ||
Comment 4•4 years ago
|
||
There is no webrender available in a VM, and the sanity test disable pref is set anyway so its unrelated to web render.
To note, this occurs on waterfox classic as well which doesn't have webrender enabled, but the testing has been done on firefox 72 and 77 as well with these prefs on real hardware so its got nothing to do with it
Firefox is chewing a cpu regardless of the presence of support for webrender.
Reporter | ||
Comment 5•4 years ago
|
||
The offending blob is loaded from https://quantcast.mgr.consensu.org/choice/uer8ZPXHG8WDU/www.gamesradar.com/choice.js?timestamp=
Comment 6•4 years ago
|
||
There's a bunch of stuff going on in that profile, including one tracker script checking window dimensions and other stuff in an interval. There's still a fair amount of time spent in the setInterval machinery itself...
I wonder, is this similarly bad on Nightly? I think some timer improvements landed in 78.
But yeah, clearly nothing webrender specific there.
Reporter | ||
Comment 7•4 years ago
|
||
Hi Emilio, I have blocked the specific quantcast blob rather than all of them as i had been to mitigate temporarily and the issue is gone,
it looks like it is supposed to make a GPDR cookie banner appear, but never does, it may be an issue in the websites implementation of this script, but i haven't come across other sites using quantcast to make a firm conclusion on that.
I'm afraid nightly is no better off here.
Reporter | ||
Comment 8•4 years ago
|
||
Comment 9•4 years ago
•
|
||
I found two issues so far:
- The site is using setInterval(..., 0) and we don't throttle it (bug 1646799).
- In Nightly, SavedStack capturing is responsible for most of the memory usage (bug 1646792).
Comment 10•4 years ago
|
||
(In reply to Markus Stange [:mstange] from comment #9)
I found two issues so far:
- The site is using setTimeout(..., 0) and we don't throttle it (bug 1646799).
I guess you mean setInterval
Updated•4 years ago
|
Comment 11•4 years ago
|
||
er, yes, fixed the comment
Comment 12•4 years ago
|
||
(In reply to Markus Stange [:mstange] from comment #9)
- In Nightly, SavedStack capturing is responsible for most of the memory usage (bug 1646792).
This turned out to be false. The memory is consumed by other JS objects but I'm not sure how. The memory devtools might help answer that question.
Comment 13•4 years ago
|
||
I've grabbed a few snapshots with the memory devtools and most of the memory seems to be PromiseReaction and Function objects. They're rooted in some mCallback. I don't know what that means - maybe the page is never canceling its setIntervals, and just stacking up more and more of them?
Description
•