Open Bug 1343234 Opened 7 years ago Updated 2 years ago

High memory usage and OOM after 2 hours of streaming youtube

Categories

(Core :: DOM: Core & HTML, defect, P5)

51 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: warnius, Unassigned)

Details

(Whiteboard: [MemShrink:P3])

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
Build ID: 20170125094131

Steps to reproduce:

Go to youtube stream video, f.e. https://www.youtube.com/watch?v=10V6xet5ODk
Play it for an hours or two.


Actual results:

Firefox is not releasing memory.


Expected results:

Firefox should release old video cache from memory.
Whiteboard: [MemShrink]
Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
Testing on m-c (55) media-resources increased over an hour long run:

> 169.39 MB (100.0%) -- explicit
> ├──140.88 MB (83.17%) ── media/resources

That measurement was after a forced minimize. After another 40 minutes there was no further growth.
Can you give us details of enabled add-ons enabled from about:support? Attaching a memory report from about:memory would be helpful as well.

It might also be worth retesting on the latest release, 52.
Flags: needinfo?(warnius)
Summary: Firefox is NOT releasing memory from youtube. After 2 hours of watching youtube stream video firefox will start crashing. Task manager shows enormous amounts of RAM usage by Firefox. Restarting browser every 2 hours is very annoying. Please fix. → High memory usage and OOM after 2 hours of streaming youtube
Thank you very much for your attention and response.
I tested it, but the results may be not precise since the video has crashed twice during the test (video stopped and after refreshing it released all memory). Also, during the tests I was using Firefox developer edition for other activities, I believe it does not affect the results, but I may be wrong.

This is the memory measurement after 2 hours.

1,295.81 MB (100.0%) -- explicit
├────409.11 MB (31.57%) ++ js-non-window
├────334.24 MB (25.79%) ++ media
├────247.77 MB (19.12%) ++ window-objects
├────150.38 MB (11.61%) ── heap-unclassified
├─────45.16 MB (03.49%) ++ (18 tiny)
├─────42.18 MB (03.25%) ++ heap-overhead
├─────30.39 MB (02.34%) ++ add-ons
├─────20.36 MB (01.57%) ++ storage
└─────16.21 MB (01.25%) -- layout
      ├──15.86 MB (01.22%) ── rule-processor-cache
      └───0.35 MB (00.03%) ++ (2 tiny)


I probably didn't express my problem correctly, since media is not consuming much memory. I had only one tab open on my Firefox. If the report includes my other activity I can re-do the test.

I have the same problem at home and at work. Usually I just turn on some music live stream and don't do any additional browsing. My computer always slows down in an hour or two and I have to restart the browser.


Here is my about:support info:


Application Basics
------------------

Name: Firefox
Version: 51.0.1
Build ID: 20170125094131
Update Channel: release
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
OS: Windows_NT 6.1
Multiprocess Windows: 0/1 (Disabled by add-ons)
Safe Mode: false

Crash Reports for the Last 3 Days
---------------------------------

All Crash Reports

Extensions
----------

Name: Adblock Plus
Version: 2.8.2
Enabled: true
ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

Name: Application Update Service Helper
Version: 1.5
Enabled: true
ID: aushelper@mozilla.org

Name: Cookies Manager+
Version: 1.13.3
Enabled: true
ID: {bb6bc1bb-f824-4702-90cd-35e2fb24f25d}

Name: Diagnostics
Version: 1.0
Enabled: true
ID: diagnostics@mozilla.org

Name: Free Memory
Version: 0.96.1.1-signed
Enabled: true
ID: jid1-n85lxPv1NAWVTQ@jetpack

Name: Multi-process staged rollout
Version: 1.7
Enabled: true
ID: e10srollout@mozilla.org

Name: Pocket
Version: 1.0.5
Enabled: true
ID: firefox@getpocket.com

Name: Send HSTS Priming Requests
Version: 1.0
Enabled: true
ID: hsts-priming@mozilla.org

Name: SHA-1 deprecation staged rollout
Version: 1.3
Enabled: true
ID: disableSHA1rollout@mozilla.org

Name: Tamper Data
Version: 11.0.1.1-signed.1-signed
Enabled: true
ID: {9c51bd27-6ed8-4000-a2bf-36cb95c0c947}

Name: Video DownloadHelper
Version: 6.2.0
Enabled: true
ID: {b9db16a4-6edc-47ec-a1f4-b86292ed211d}

Name: Web Compat
Version: 1.0
Enabled: true
ID: webcompat@mozilla.org

Name: XSL Results
Version: 2.0.0.1-signed.1-signed
Enabled: true
ID: xslresults@brett.zamir

Name: Focus Regainer
Version: 0.11.0
Enabled: false
ID: focus@regainer.wproxym

Name: Quick Translator
Version: 1.0.1-signed
Enabled: false
ID: {5C655500-E712-41e7-9349-CE462F844B19}

Graphics
--------

Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: none
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA NVS 3100M Direct3D11 vs_4_1 ps_4_1)
WebGL2 Renderer: Google Inc. -- ANGLE (NVIDIA NVS 3100M Direct3D11 vs_4_1 ps_4_1)
Hardware H264 Decoding: No; DXVA2D3D9 crashes detected in the past
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (6.2.9200.21976)
GPU #1
Active: Yes
Description: NVIDIA NVS 3100M
Vendor ID: 0x10de
Device ID: 0x0a6c
Driver Version: 9.18.13.4144
Driver Date: 2-3-2015
Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID: 214217aa
RAM: 256

Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
failures: [GFX1-]: DXVA2D3D9 video decoding is disabled due to a previous crash.
Decision Log
D3D9_COMPOSITING:
disabled by default: Disabled by default
Crash Guard Disabled Features
D3D9 Video Decoder: Reset on Next Restart

Failure Log
(#0) Error: DXVA2D3D9 video decoding is disabled due to a previous crash.

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 358400
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.smart_size_cached_value: 358400
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 4
browser.cache.memory.capacity: 16384
browser.download.importedFromSqlite: true
browser.download.manager.alertOnEXEOpen: true
browser.download.useDownloadDir: false
browser.fixup.domainwhitelist.www: true
browser.places.smartBookmarksVersion: 8
browser.sessionstore.upgradeBackup.latestBuildID: 20170125094131
browser.startup.homepage_override.buildID: 20170125094131
browser.startup.homepage_override.mstone: 51.0.1
browser.tabs.remote.autostart.2: true
browser.urlbar.daysBeforeHidingSuggestionsPrompt: 0
browser.urlbar.lastSuggestionsPromptDate: 20160901
dom.apps.lastUpdate.buildID: 20161019084923
dom.apps.lastUpdate.mstone: 49.0.2
dom.apps.reset-permissions: true
dom.mozApps.used: true
dom.push.userAgentID: 1c12349c463d4ade851fba8f35810aaf
extensions.lastAppVersion: 51.0.1
font.internaluseonly.changed: true
gfx.crash-guard.d3d11layers.appVersion: 51.0.1
gfx.crash-guard.d3d11layers.deviceID: 0x0a6c
gfx.crash-guard.d3d11layers.driverVersion: 9.18.13.4144
gfx.crash-guard.d3d11layers.feature-d2d: true
gfx.crash-guard.d3d11layers.feature-d3d11: true
gfx.crash-guard.glcontext.gfx.driver-init.direct3d11-angle: true
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle: true
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-d3d11: false
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-warp: false
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-try-d3d11: true
gfx.crash-guard.status.d3d11layers: 2
gfx.crash-guard.status.d3d9video: 3
gfx.crash-guard.status.glcontext: 2
gfx.direct3d.last_used_feature_level_idx: 0
gfx.driver-init.appVersion: 42.0
gfx.driver-init.deviceID: 0x0a6c
gfx.driver-init.driverVersion: 9.18.13.1269
gfx.driver-init.feature-d2d: true
gfx.driver-init.feature-d3d11: true
gfx.driver-init.status: 2
media.benchmark.vp9.fps: 121
media.benchmark.vp9.versioncheck: 1
media.gmp-eme-adobe.abi: x86-msvc-x64
media.gmp-eme-adobe.lastUpdate: 1462773826
media.gmp-eme-adobe.version: 17
media.gmp-gmpopenh264.abi: x86-msvc-x64
media.gmp-gmpopenh264.lastUpdate: 1471536420
media.gmp-gmpopenh264.version: 1.6
media.gmp-manager.buildID: 20170125094131
media.gmp-manager.lastCheck: 1489405598
media.gmp-widevinecdm.abi: x86-msvc-x64
media.gmp-widevinecdm.lastUpdate: 1474888192
media.gmp-widevinecdm.version: 1.4.8.903
media.gmp.storage.version.observed: 1
media.hardware-video-decoding.failed: false
media.youtube-ua.override.to: 43
media.webrtc.debug.aec_log_dir: C:\Users\ZILVIN~1\AppData\Local\Temp
media.webrtc.debug.log_file: C:\Users\ZILVIN~1\AppData\Local\Temp\WebRTC.log
network.auth.allow-subresource-auth: 2
network.cookie.prefsMigrated: true
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1488787988
places.history.expiration.transient_current_max_pages: 141974
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_bgcolor: false
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_bgimages: false
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_colorspace:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_command:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_downloadfonts: false
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_duplex: 1515870810
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_edge_bottom: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_edge_left: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_edge_right: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_edge_top: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_evenpages: true
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_footercenter:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_footerleft:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_footerright:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_headercenter:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_headerleft:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_headerright:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_in_color: true
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_margin_bottom: 0.787500023841858
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_margin_left: 1.18124997615814
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_margin_right: 0.590277791023254
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_margin_top: 0.787500023841858
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_oddpages: true
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_orientation: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_page_delay: 50
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_data: 9
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_height: 11,00
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_name:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_size_type: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_size_unit: 1
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_paper_width: 8,50
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_plex_name:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_resolution: 1515870810
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_resolution_name:
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_reversed: false
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_scaling: 1,00
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_shrink_to_fit: true
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_to_file: false
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_unwriteable_margin_bottom: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_unwriteable_margin_left: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_unwriteable_margin_right: 0
print.printer_\\DOMSRV\HP_Laserjet_4250_(4_aukstas).print_unwriteable_margin_top: 0
privacy.sanitize.migrateClearSavedPwdsOnExit: true
privacy.sanitize.migrateFx3Prefs: true
security.pki.sha1_enforcement_level: 3
security.sandbox.content.tempDirSuffix: {dfaecdde-349b-43d3-a031-3efc2cb90fd2}
services.sync.declinedEngines: passwords,tabs,addons,adblockplus
services.sync.engine.addons: false
services.sync.engine.passwords: false
services.sync.engine.prefs.modified: false
services.sync.engine.tabs: false
services.sync.lastPing: 1489405562
services.sync.lastSync: Mon Mar 13 2017 13:48:03 GMT+0200 (FLE Standard Time)
services.sync.numClients: 3
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1487148114

Important Locked Preferences
----------------------------

Places Database
---------------

JavaScript
----------

Incremental GC: true

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.13.1
Version in use: 4.13.1

NSS
Expected minimum version: 3.28.1
Version in use: 3.28.1

NSSSMIME
Expected minimum version: 3.28.1
Version in use: 3.28.1

NSSSSL
Expected minimum version: 3.28.1
Version in use: 3.28.1

NSSUTIL
Expected minimum version: 3.28.1
Version in use: 3.28.1

Experimental Features
---------------------

Sandbox
-------

Content Process Sandbox Level: 1
I tested again with no interaction. One tab with Youtube open. These are results after 50 minutes.

806.70 MB (100.0%) -- explicit
├──292.07 MB (36.21%) ++ js-non-window
├──147.40 MB (18.27%) ── heap-unclassified
├──142.00 MB (17.60%) ++ media
├──109.55 MB (13.58%) ++ window-objects
├───31.74 MB (03.93%) ++ add-ons
├───20.23 MB (02.51%) ++ storage
├───17.70 MB (02.19%) ++ (16 tiny)
├───16.27 MB (02.02%) ++ heap-overhead
├───11.06 MB (01.37%) ++ layout
├───10.12 MB (01.25%) ++ workers
└────8.57 MB (01.06%) ++ xpconnect

I was observing Task Manager all the time and it showed continuously increasing memory usage for Firefox.
This is what I got after 2 more hours (Youtube video stopped during the test, not sure when exactly)

1,609.71 MB (100.0%) -- explicit
├────723.29 MB (44.93%) ++ js-non-window
├────328.88 MB (20.43%) ── heap-unclassified
├────287.31 MB (17.85%) ++ window-objects
├─────96.43 MB (05.99%) ++ heap-overhead
├─────39.79 MB (02.47%) ++ (17 tiny)
├─────35.38 MB (02.20%) ++ add-ons
├─────33.66 MB (02.09%) ++ xpconnect
├─────23.71 MB (01.47%) ++ layout
├─────20.69 MB (01.29%) ++ media
└─────20.55 MB (01.28%) ++ storage
(In reply to warnius from comment #5)
> This is what I got after 2 more hours (Youtube video stopped during the
> test, not sure when exactly)
> 
> 1,609.71 MB (100.0%) -- explicit
> ├────723.29 MB (44.93%) ++ js-non-window
> ├────328.88 MB (20.43%) ── heap-unclassified
> ├────287.31 MB (17.85%) ++ window-objects

The top 3 are not about media. ni? DOM team for further investigation.
Component: Audio/Video: Playback → DOM
warnius, can you attach your before and after memory reports?
Memory report in the beginning (all tabs closed, except for about:memory)
Flags: needinfo?(warnius)
30 mins later
50 mins after
I couldn't find the old ones so I made new ones. There was only 1 tab open during the test.
(In reply to warnius from comment #11)
> I couldn't find the old ones so I made new ones. There was only 1 tab open
> during the test.

Thank you, that's helpful. It looks like one one of your add-ons is causing problems:

> 3,143 (100.0%) -- js-main-runtime-compartments
> ├──3,119 (99.24%) -- user
> │  ├──3,115 (99.11%) ── [Expanded Principal [https://www.youtube.com/]], [anonymous sandbox] (from: resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/loader/sandbox.js:32) [3115] [+]
> │  └──────4 (00.13%) ++ (20 tiny)
> └─────24 (00.76%) ++ system

I would guess it's 'Video DownloadHelper' given this issue is on youtube. Can you try disabling that? If that doesn't help I'd suggest disabling a few others as well (adblock and other non-@mozilla add-ons).
Flags: needinfo?(warnius)
This also happens on Facebook and ok.ru. If I close the tab before Firefox crashes, RAM usage slows returns to low levels.
55.0a1 (2017-03-23) (32-bit)
(In reply to Roman R. from comment #13)
> This also happens on Facebook and ok.ru. If I close the tab before Firefox
> crashes, RAM usage slows returns to low levels.

Thank you for the report Roman R. Can you file a separate bug for your issue and attach a memory report from about:memory and the output from about:support? Bugs like this often have different causes.
Will do. At which point should I run the report from about:memory? Once RAM usage starts going up, it does it VERY quickly — within a minute it reaches to beyondcloud levels.
(In reply to Roman R. from comment #16)
> Will do. At which point should I run the report from about:memory? Once RAM
> usage starts going up, it does it VERY quickly — within a minute it reaches
> to beyondcloud levels.

In that case we would like 2 reports: one when you start seeing issues, and another a few minutes later when it gets even worse.
Eric, as soon as I switch to another tab to save about:memory, RAM usage plummets.
Try opening a new window to open about:memory in, then you don't have to switch tabs.
Whiteboard: [MemShrink] → [MemShrink:P3]
Flags: needinfo?(warnius)
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: