Closed Bug 1418326 Opened 3 years ago Closed 4 months ago

High memory usage due to amazon ads on reddit

Categories

(Web Compatibility :: Desktop, defect, P3)

Firefox 57
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: aksumka, Unassigned)

References

Details

(Keywords: webcompat:needs-diagnosis, Whiteboard: [MemShrink:P3][needsdiagnosis])

Attachments

(1 file)

444.89 KB, application/x-gzip
Details
Attached file memory-report.json.gz
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
Build ID: 20171115114231

Steps to reproduce:

Few tabs open (Pinned Gmail), reddit home page, Ars. After a few minutes memory usage will spike to multiple GB.

Tried new empty profile.
Restarted FF in safe mode.
Cleared all temps.
Reinstalled FF
Updated to beta here.


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

Name: Firefox
Version: 58.0b4
Build ID: 20171115114231
Update Channel: beta
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0
OS: Windows_NT 10.0
Multiprocess Windows: 1/1 (Enabled by default)
Web Content Processes: 5/4
Stylo: content = true (enabled by default), chrome = false (disabled by default)
Google Key: Found
Mozilla Location Service Key: Found
Safe Mode: false

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

Report ID: bp-f07f9426-9bd4-447a-83a0-22f141171117
Submitted: 4 minutes ago

Report ID: bp-8d745a81-da64-479a-b53c-23d5a1171117
Submitted: 4 minutes ago

Report ID: bp-e6b1318c-7bc8-4380-9c24-838970171116
Submitted: 21 hours ago

All Crash Reports (including 1 pending crash in the given time range)

Firefox Features
----------------

Name: Activity Stream
Version: 2017.11.03.1438-bf427ddd
ID: activity-stream@mozilla.org

Name: Application Update Service Helper
Version: 2.0
ID: aushelper@mozilla.org

Name: Firefox Screenshots
Version: 19.2.0
ID: screenshots@mozilla.org

Name: Follow-on Search Telemetry
Version: 0.9.6
ID: followonsearch@mozilla.com

Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org

Name: Photon onboarding
Version: 1.0
ID: onboarding@mozilla.org

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

Name: Shield Recipe Client
Version: 76.1
ID: shield-recipe-client@mozilla.org

Name: Web Compat
Version: 1.1
ID: webcompat@mozilla.org

Extensions
----------

Name: Reddit Enhancement Suite
Version: 5.8.6
Enabled: true
ID: jid1-xUfzOsOFlzSOXg@jetpack

Name: Adobe Acrobat
Version: 18.0.2
Enabled: false
ID: web2pdfextension.17@acrobat.adobe.com

Graphics
--------

Features
Compositing: Direct3D 11 (Advanced Layers)
Asynchronous Pan/Zoom: wheel input enabled; touch input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000986c) EGL_VERSION: 1.4 (ANGLE 2.1.0.db3422764a9b) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_ANGLE_display_robust_resource_initialization
WebGL 1 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 630 Direct3D11 vs_5_0 ps_5_0)
WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.db3422764a9b)
WebGL 1 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_robust_resource_initialization GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_sRGB EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000986c) EGL_VERSION: 1.4 (ANGLE 2.1.0.db3422764a9b) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses EGL_ANGLE_display_robust_resource_initialization
WebGL 2 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 630 Direct3D11 vs_5_0 ps_5_0)
WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.db3422764a9b)
WebGL 2 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_robust_resource_initialization GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object
WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Direct2D: true
Off Main Thread Painting Enabled: true
DirectWrite: true (10.0.16299.15)
GPU #1
Active: Yes
Description: Intel(R) HD Graphics 630
Vendor ID: 0x8086
Device ID: 0x5912
Driver Version: 22.20.16.4771
Driver Date: 8-13-2017
Drivers: igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32
Subsys ID: 079c1028
RAM: Unknown
GPU #2
Active: No
Description: AMD Radeon (TM) R9 M360
Vendor ID: 0x1002
Device ID: 0x682b
Driver Version: 22.19.662.4
Driver Date: 7-20-2017
Drivers: aticfx64 aticfx64 aticfx64 amdxc64 aticfx32 aticfx32 aticfx32 amdxc32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Subsys ID: 0000000c
RAM: 2048
Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 11004
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
unavailable by runtime: Build doesn't include WebRender




Media
-----

Audio Backend: wasapi
Max Channels: 2
Preferred Channel Layout: stereo
Preferred Sample Rate: 48000
Output Devices
Name: Group
Speakers / Headphones (Realtek Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0668&SUBSYS_1028079C&REV_1000\4&237585d8&0&0001
Input Devices
Name: Group
Microphone Array (Realtek Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0668&SUBSYS_1028079C&REV_1000\4&237585d8&0&0001
Jack Mic (Realtek Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0668&SUBSYS_1028079C&REV_1000\4&237585d8&0&0001
Stereo Mix (Realtek Audio): HDAUDIO\FUNC_01&VEN_10EC&DEV_0668&SUBSYS_1028079C&REV_1000\4&237585d8&0&0001

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

browser.cache.disk.capacity: 358400
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.smart_size.first_run: false
browser.cache.frecency_experiment: 3
browser.places.smartBookmarksVersion: 8
browser.sessionstore.upgradeBackup.latestBuildID: 20171115114231
browser.startup.homepage_override.buildID: 20171115114231
browser.startup.homepage_override.mstone: 58.0
browser.tabs.remote.autostart.2: true
browser.tabs.warnOnClose: false
browser.urlbar.lastSuggestionsPromptDate: 20171117
browser.urlbar.timesBeforeHidingSuggestionsHint: 0
dom.forms.autocomplete.formautofill: true
dom.ipc.processCount.web: 4
extensions.lastAppVersion: 58.0
gfx.crash-guard.d3d11layers.appVersion: 57.0
gfx.crash-guard.d3d11layers.deviceID: 0x5912
gfx.crash-guard.d3d11layers.driverVersion: 22.20.16.4771
gfx.crash-guard.d3d11layers.feature-d2d: true
gfx.crash-guard.d3d11layers.feature-d3d11: true
gfx.crash-guard.status.d3d11layers: 2
layers.mlgpu.sanity-test-failed: false
media.benchmark.vp9.fps: 228
media.benchmark.vp9.versioncheck: 2
media.gmp-gmpopenh264.abi: x86_64-msvc-x64
media.gmp-gmpopenh264.lastUpdate: 1510924762
media.gmp-gmpopenh264.version: 1.7.1
media.gmp-manager.buildID: 20171115114231
media.gmp-manager.lastCheck: 1510926548
media.gmp-widevinecdm.abi: x86_64-msvc-x64
media.gmp-widevinecdm.lastUpdate: 1510924763
media.gmp-widevinecdm.version: 1.4.8.1008
media.gmp.storage.version.observed: 1
media.hardware-video-decoding.failed: false
network.cookie.prefsMigrated: true
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1510926863
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
security.sandbox.content.tempDirSuffix: {e80d930e-daa4-4ea5-8c35-bcf9458ccd37}
services.sync.engine.addresses.available: true
storage.vacuum.last.index: 0
storage.vacuum.last.places.sqlite: 1510926863
ui.osk.debug.keyboardDisplayReason: IKPOS: Keyboard presence confirmed.

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

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

JavaScript
----------

Incremental GC: true

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

Activated: false
Prevent Accessibility: 0
Accessible Handler Used: true
Accessibility Instantiator:

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

NSPR
Expected minimum version: 4.17
Version in use: 4.17

NSS
Expected minimum version: 3.34 Beta
Version in use: 3.34 Beta

NSSSMIME
Expected minimum version: 3.34 Beta
Version in use: 3.34 Beta

NSSSSL
Expected minimum version: 3.34 Beta
Version in use: 3.34 Beta

NSSUTIL
Expected minimum version: 3.34 Beta
Version in use: 3.34 Beta

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

Sandbox
-------

Content Process Sandbox Level: 4
Effective Content Process Sandbox Level: 4

Internationalization & Localization
-----------------------------------

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US"]
App Locales: ["en-US"]
Regional Preferences: ["en-US"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["en-US"]



Actual results:

Browser becomes laggy and unresponsive.
Component: Untriaged → General
Product: Firefox → Core
It looks like reddit is doing something crazy with ad window here:

├──1,925.98 MB (76.01%) -- window-objects
│  ├──1,144.71 MB (45.17%) -- top(https://www.reddit.com/, id=17179869185)
│  │  ├────973.35 MB (38.41%) ++ js-zone(0x1b4973a1000)
│  │  └────171.35 MB (06.76%) ++ active
│  ├────758.68 MB (29.94%) -- top(none)/detached
│  │    ├──697.91 MB (27.54%) ++ window(https://aax-us-east.amazon-adsystem.com/e/dtb/impi?b=IjAoxRnxg0b8lnHiTV5TIPAAAAFfylA4nwEAAA0zAbzp10c&pp=uo1beo&rnd=1247649111510927776383&p=1dqregw&crid=80406030)
│  │    └───60.77 MB (02.40%) ++ (49 tiny)

If you navigate the reddit tab to example.com or something, then minimize memory, and measure memory again, does it go away?
Flags: needinfo?(aksumka)
Whiteboard: [MemShrink]
Serves me right for trying to be a good net citizen by not blocking ads. 

Looks like the ads on reddit are indeed the culprit. Sorry for the waste of time!
Flags: needinfo?(aksumka)
Mike, it looks like reddit might be leaking ad iframes by holding on to them via js.  Is this something suitable to put under Tech Evanglism?
Flags: needinfo?(miket)
Component: General → Desktop
Product: Core → Tech Evangelism
Whiteboard: [MemShrink] → [MemShrink:P3]
Target Milestone: --- → Nov
Version: 58 Branch → Firefox 57
Summary: High Memory Usage → High memory usage due to amazon ads on reddit
Duplicate of this bug: 1421386
Yeah, this is a good place for it. We'll need to do some work to understand what possible outreach options are (suggested fix, etc).
Flags: needinfo?(miket)
Whiteboard: [MemShrink:P3] → [MemShrink:P3][needsdiagnosis]
To be retested on the new Reddit design
Flags: needinfo?(miket)
Priority: -- → P3
So far I haven't been able to test with the redesign. But it seems like most of the ads I'm getting are for subreddits... would probably be worth re-testing once it goes live to everyone else. I can imagine them not running real ads for a small group of beta testers.
Flags: needinfo?(miket)
Product: Tech Evangelism → Web Compatibility

See bug 1547409. Moving webcompat whiteboard tags to keywords.

I don't see anything weird happening in the new design, but maybe I do not get the right ads.

Status: UNCONFIRMED → RESOLVED
Closed: 4 months ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.