Open Bug 1580582 Opened 3 years ago Updated 2 months ago

Leaving Twitter open degrades performance of entire browser and causes shutdown hang

Categories

(Core :: Performance, defect, P3)

70 Branch
x86_64
Windows 10
defect

Tracking

()

People

(Reporter: kael, Unassigned, NeedInfo)

References

Details

This has been happening for a while and is probably caused by Twitter shipping broken JS again, but the way Firefox responds to it is super sub-optimal.

After leaving Twitter open for a short while, the entire browser starts to perform poorly (but especially the Twitter tab) - we're talking multiple-second hangs at random where no repaints happen and no mouse events are dispatched. The entire content process hosting Twitter seems to be cursed at this point and neither shift-refreshing the Twitter tab or closing it will recover. Any other tabs opening in that process perform really badly too (I opened a bugzilla tab and got to watch link hovers be delayed by multiple seconds.

After this happens, Firefox hangs at shutdown and the process has to be terminated.

I haven't been able to spot the problem in the profiler. It doesn't seem like GC or CC and about:memory isn't showing significant memory usage in the process, though I suppose it could be some sort of resource leak that isn't obvious.

I don't know what category this goes in since it's not clear whether it's JS, GC, etc.

Looking at the two process termination crashes in about:crashes (which I submitted) the only threads I see that aren't parked waiting on objects/timers/etc seem to be webrender/compositor related. I'm not sure this is meaningful though.

https://crash-stats.mozilla.org/report/index/8b398bab-9aef-4000-bca9-d20ca0190911
https://crash-stats.mozilla.org/report/index/f252bf16-a470-4bf5-8d21-fb94e0190911

Since Twitter is historically a dom/layers/layout/rasterization nightmare maybe that's the problem. I have WebRender turned on.


Application Basics

Name: Firefox
Version: 70.0b5
Build ID: 20190909162732
Update Channel: aurora
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0
OS: Windows_NT 10.0
Launcher Process: Enabled
Multiprocess Windows: 3/3 Enabled by default
Remote Processes: 10
Enterprise Policies: Inactive
Google Location Service Key: Found
Google Safebrowsing Key: Found
Mozilla Location Service Key: Found
Safe Mode: false

Crash Reports for the Last 3 Days

Report ID: bp-8b398bab-9aef-4000-bca9-d20ca0190911
Submitted: 3 minutes ago

Report ID: bp-f252bf16-a470-4bf5-8d21-fb94e0190911
Submitted: 3 minutes ago

Report ID: bp-ad5b8893-3738-43c8-a19f-04e9e0190911
Submitted: 3 minutes ago

Report ID: bp-34e24be1-4482-485a-bd98-861920190911
Submitted: 3 minutes ago

Firefox Developer Edition Features

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

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

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

Name: WebCompat Reporter
Version: 1.1.0
ID: webcompat-reporter@mozilla.org

Remote Processes

Type: Web Content
Count: 8 / 8

Type: Extension
Count: 1

Type: GPU
Count: 1

Extensions

Name: Amazon.com
Version: 1.1
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Version: 1.0
Enabled: true
ID: bing@search.mozilla.org

Name: DuckDuckGo
Version: 1.0
Enabled: true
ID: ddg@search.mozilla.org

Name: eBay
Version: 1.0
Enabled: true
ID: ebay@search.mozilla.org

Name: Firefox Color
Version: 2.1.5
Enabled: true
ID: FirefoxColor@mozilla.com

Name: Google
Version: 1.0
Enabled: true
ID: google@search.mozilla.org

Name: Image Search Options
Version: 3.0.12
Enabled: true
ID: {4a313247-8330-4a81-948e-b79936516f78}

Name: Owl - For comfortable reading
Version: 2.2.7
Enabled: true
ID: @owl-comfortable-reading-addon

Name: Twitter
Version: 1.0
Enabled: true
ID: twitter@search.mozilla.org

Name: uBlock Origin
Version: 1.22.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: User-Agent Switcher
Version: 1.3.11
Enabled: true
ID: user-agent-switcher@ninetailed.ninja

Name: Wikipedia (en)
Version: 1.0
Enabled: true
ID: wikipedia@search.mozilla.org

Name: Firefox Multi-Account Containers
Version: 6.1.0
Enabled: false
ID: @testpilot-containers

Name: Gecko Profiler
Version: 0.30
Enabled: false
ID: geckoprofiler@mozilla.com

Name: geckoprofiler
Version: 1.16.25
Enabled: false
ID: jid0-edalmuivkozlouyij0lpdx548bc@jetpack

Name: Media Panel
Version: 2.6
Enabled: false
ID: {68d048f4-9449-4c97-8425-6dac7f743b14}

Name: Rikaichan
Version: 3.02b1
Enabled: false
ID: {0AA9101C-D3C1-4129-A9B7-D778C6A17F82}

Name: Test Pilot
Version: 3.0.6vffecb95
Enabled: false
ID: @testpilot-addon

Name: Twitter Block Chain
Version: 1.8.3
Enabled: false
ID: twitterblockchain@satsuki.tv

Name: U2F Support Add-on
Version: 1.0.1
Enabled: false
ID: u2f4moz@prefiks.org

Name: User Agent Switcher
Version: 0.7.3.1-signed.1-signed
Enabled: false
ID: {e968fc70-8f95-4ab9-9e79-304de2a71ee1}

Name: YouTube Classic
Version: 1.4.1
Enabled: false
ID: {6acd0f4d-ab79-4b79-9b28-8bde65ae355c}

Security Software

Type: Windows Defender Antivirus

Type:

Type: Windows Firewall

Graphics

Features
Compositing: WebRender
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000934d) EGL_VERSION: 1.4 (ANGLE 2.1.0.21dccd386996) 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 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_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable 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_KHR_debug EGL_ANGLE_explicit_context
WebGL 1 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce RTX 2080 Ti Direct3D11 vs_5_0 ps_5_0)
WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.21dccd386996)
WebGL 1 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory 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_func_extended 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_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays 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_bptc 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_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior 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_border_clamp 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 OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_disjoint_timer_query EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_filter_anisotropic 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: 000000000000934d) EGL_VERSION: 1.4 (ANGLE 2.1.0.21dccd386996) 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 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_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable 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_KHR_debug EGL_ANGLE_explicit_context
WebGL 2 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce RTX 2080 Ti Direct3D11 vs_5_0 ps_5_0)
WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.21dccd386996)
WebGL 2 Driver Extensions: GL_ANGLE_client_arrays GL_ANGLE_copy_texture_3d GL_ANGLE_depth_texture GL_ANGLE_explicit_context GL_ANGLE_explicit_context_gles1 GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_multiview_multisample GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_provoking_vertex GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_multisample 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_func_extended 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_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays 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_bptc 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_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior 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_border_clamp 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 GL_OVR_multiview2 OES_compressed_EAC_R11_signed_texture OES_compressed_EAC_R11_unsigned_texture OES_compressed_EAC_RG11_signed_texture OES_compressed_EAC_RG11_unsigned_texture OES_compressed_ETC2_RGB8_texture OES_compressed_ETC2_RGBA8_texture OES_compressed_ETC2_punchthroughA_RGBA8_texture OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture OES_compressed_ETC2_sRGB8_alpha8_texture OES_compressed_ETC2_sRGB8_texture
WebGL 2 Extensions: EXT_color_buffer_float EXT_disjoint_timer_query EXT_float_blend EXT_texture_compression_bptc EXT_texture_filter_anisotropic 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
Uses Tiling (Content): true
Off Main Thread Painting Enabled: true
Off Main Thread Painting Worker Count: 4
Target Frame Rate: 60
DirectWrite: true (10.0.18362.267)
GPU #1
Active: Yes
Description: NVIDIA GeForce RTX 2080 Ti
Vendor ID: 0x10de
Device ID: 0x1e04
Driver Version: 26.21.14.3615
Driver Date: 8-24-2019
Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumdx.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumdx.dll C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumd.dll,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ff72214788d99390\nvldumd.dll
Subsys ID: 22813842
RAM: 11264

Diagnostics
AzureCanvasBackend: direct2d 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: skia
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): none
GPUProcessPid: 12620
GPUProcess: Terminate GPU Process
Device Reset: Trigger Device Reset
ClearType Parameters: \.\DISPLAY1 [ Gamma: 1.8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ] \.\DISPLAY2 [ Gamma: 1.8 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ]
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
available by user: Force enabled by pref

Media

Audio Backend: wasapi
Max Channels: 2
Preferred Sample Rate: 48000
Output Devices
snip
Important Modified Preferences

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 1739944
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.disk.telemetry_report_ID: 136
browser.cache.frecency_experiment: 4
browser.download.folderList: 2
browser.fixup.domainwhitelist.firehomie: true
browser.fixup.domainwhitelist.rv325: true
browser.places.smartBookmarksVersion: 8
browser.sessionstore.upgradeBackup.latestBuildID: 20190909162732
browser.startup.homepage_override.buildID: 20190909162732
browser.startup.homepage_override.mstone: 70.0
browser.tabs.crashReporting.includeURL: true
browser.tabs.remote.autostart.2: false
browser.tabs.warnOnClose: false
browser.tabs.warnOnOpen: false
browser.urlbar.matchBuckets: general:5,suggestion:Infinity
browser.urlbar.placeholderName: Google
browser.urlbar.searchSuggestionsChoice: true
browser.urlbar.userMadeSearchSuggestionsChoice: true
dom.apps.lastUpdate.buildID: 20160916101415
dom.apps.lastUpdate.mstone: 49.0
dom.apps.reset-permissions: true
dom.forms.autocomplete.formautofill: true
dom.max_script_run_time: 0
dom.mozApps.used: true
dom.push.userAgentID: cd692d1efcf44c95a328e69fd4638d7c
extensions.formautofill.creditCards.used: 3
extensions.formautofill.firstTimeUse: false
extensions.lastAppVersion: 70.0
font.internaluseonly.changed: false
font.name.monospace.x-western: Consolas
font.name.sans-serif.x-western: Calibri
font.name.serif.x-western: Cambria
font.size.fixed.x-western: 15
font.size.variable.x-western: 18
gfx.crash-guard.d3d11layers.appVersion: 68.0
gfx.crash-guard.d3d11layers.feature-d2d: false
gfx.crash-guard.d3d11layers.feature-d3d11: false
gfx.crash-guard.status.d3d11layers: 2
gfx.crash-guard.status.wmfvpxvideo: 2
gfx.crash-guard.wmfvpxvideo.appVersion: 70.0
gfx.crash-guard.wmfvpxvideo.deviceID: 0x1e04
gfx.crash-guard.wmfvpxvideo.driverVersion: 26.21.14.3615
gfx.font_rendering.cleartype_params.cleartype_level: 35
gfx.font_rendering.cleartype_params.enhanced_contrast: 45
gfx.font_rendering.cleartype_params.force_gdi_classic_for_families:
gfx.font_rendering.cleartype_params.gamma: 1425
gfx.font_rendering.cleartype_params.rendering_mode: 5
gfx.font_rendering.directwrite.enabled: true
gfx.webrender.all: true
gfx.webrender.all.qualified: true
gfx.webrender.enable: true
gfx.webrender.enabled: true
idle.lastDailyNotification: 1568219352
layers.mlgpu.sanity-test-failed: false
media.benchmark.vp9.fps: 300
media.benchmark.vp9.versioncheck: 5
media.gmp-eme-adobe.abi: x86_64-msvc-x64
media.gmp-eme-adobe.lastUpdate: 1456263116
media.gmp-eme-adobe.version: 17
media.gmp-gmpopenh264.abi: x86_64-msvc-x64
media.gmp-gmpopenh264.lastUpdate: 1553716927
media.gmp-gmpopenh264.version: 1.8.1
media.gmp-manager.buildID: 20190909162732
media.gmp-manager.lastCheck: 1568215813
media.gmp-widevinecdm.abi: x86_64-msvc-x64
media.gmp-widevinecdm.lastUpdate: 1565740532
media.gmp-widevinecdm.version: 4.10.1440.19
media.gmp.storage.version.observed: 1
media.hardware-video-decoding.failed: false
network.cookie.prefsMigrated: true
network.dns.disablePrefetch: true
network.http.speculative-parallel-limit: 0
network.predictor.cleaned-up: true
network.predictor.enabled: false
network.prefetch-next: false
places.database.lastMaintenance: 1568219358
places.history.expiration.transient_current_max_pages: 151821
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
plugin.state.npctrl: 2
plugin.state.npgoogleupdate: 0
plugin.state.npnv3dv: 0
plugin.state.npnv3dvstreaming: 0
plugin.state.npunity3d: 1
privacy.cpd.cookies: false
privacy.cpd.downloads: false
privacy.cpd.formdata: false
privacy.cpd.history: false
privacy.cpd.sessions: false
privacy.donottrackheader.enabled: true
privacy.sanitize.migrateClearSavedPwdsOnExit: true
privacy.sanitize.migrateFx3Prefs: true
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.sanitize.timeSpan: 0
privacy.socialtracking.notification.counter: 2
privacy.socialtracking.notification.lastShown: 1567125695426
privacy.trackingprotection.introCount: 20
security.disable_button.openCertManager: false
security.remote_settings.intermediates.checked: 1559562507
security.sandbox.content.tempDirSuffix: {798b84da-142a-4a56-bf4a-aecef54f996a}
security.sandbox.plugin.tempDirSuffix: {f53dd3be-7b47-44d8-bee8-0c8e05221e1b}
security.ssl.errorReporting.automatic: true
services.sync.declinedEngines: prefs
services.sync.engine.addons: false
services.sync.engine.addresses.available: true
services.sync.engine.bookmarks.validation.lastTime: 1568218014
services.sync.engine.greasemonkey: true
services.sync.engine.passwords.validation.lastTime: 1568218014
services.sync.engine.prefs: false
services.sync.engine.prefs.modified: false
services.sync.engine.userStyles: true
services.sync.lastPing: 1568218014
services.sync.lastSync: Wed Sep 11 2019 12:08:44 GMT-0700 (Pacific Daylight Time)
services.sync.numClients: 3
signon.importedFromSqlite: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1566283243
ui.osk.debug.keyboardDisplayReason: IKPOS: Touch screen not found.

snip

Severity: normal → critical
OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
See Also: → 1579596

Is there any data I can provide to help troubleshoot this? I have to restart FF every hour or so because of it

(In reply to K. Gadd (:kael) from comment #2)

Is there any data I can provide to help troubleshoot this? I have to restart FF every hour or so because of it

Could you grab us a profile? That will allow us to see what the browser is doing when this is happening.

There's instructions on how to do this here:

https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Reporting_a_Performance_Problem

Thanks!

Flags: needinfo?(kg)

Which categories should I profile?

The Firefox profiler will sample everything, just do not filter out important information when you share the result: https://profiler.firefox.com/

Best to enable the profiler when you notice performance issue on Twitter, leave it running for ~20 seconds then capture the results, then share a URL to the results here.

Component: General → Performance

Firefox Profiler
Grabbing the profile from the Gecko Profiler Addon...

We were unable to connect to the Gecko profiler add-on within thirty seconds. This might be because the profile is big or your machine is slower than usual. Still waiting...

In case it's helpful, the most recent messages from browser console:


[Exception... "Favicon at "https://files.slack.com/favicon.ico" failed to load: Not Found." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 236" data: no] FaviconLoader.jsm:236:22
TypeError: Argument 1 of PrecompiledScript.executeInGlobal is not an object. ExtensionContent.jsm:567:25
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
TypeError: browser is null
BrowserElementParent.jsm:81:21
NS_ERROR_UNEXPECTED:
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Key event not available on some keyboard layouts: key=“i” modifiers=“accel,alt,shift” id=“key_browserToolbox” browser.xhtml
Content Security Policy: Ignoring “'unsafe-inline'” within script-src or style-src: nonce-source or hash-source specified
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Unchecked lastError value: Error: An unexpected error occurred vapi-background.js:339
Unchecked lastError value: Error: An unexpected error occurred vapi-background.js:339
<anonymous> moz-extension://d48fcb86-23c0-4c55-856c-7db6b4c5f33a/js/vapi-background.js:339
Content Security Policy: Ignoring “'unsafe-inline'” within script-src or style-src: nonce-source or hash-source specified


At the point I captured this profile the twitter tab was using 1.5gb of memory.

Flags: needinfo?(bas)

(In reply to Katelyn Gadd (:kael) from comment #7)

In case it's helpful, the most recent messages from browser console:


[Exception... "Favicon at "https://files.slack.com/favicon.ico" failed to load: Not Found." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 236" data: no] FaviconLoader.jsm:236:22
TypeError: Argument 1 of PrecompiledScript.executeInGlobal is not an object. ExtensionContent.jsm:567:25
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
TypeError: browser is null
BrowserElementParent.jsm:81:21
NS_ERROR_UNEXPECTED:
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Key event not available on some keyboard layouts: key=“i” modifiers=“accel,alt,shift” id=“key_browserToolbox” browser.xhtml
Content Security Policy: Ignoring “'unsafe-inline'” within script-src or style-src: nonce-source or hash-source specified
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive.
Unchecked lastError value: Error: An unexpected error occurred vapi-background.js:339
Unchecked lastError value: Error: An unexpected error occurred vapi-background.js:339
<anonymous> moz-extension://d48fcb86-23c0-4c55-856c-7db6b4c5f33a/js/vapi-background.js:339
Content Security Policy: Ignoring “'unsafe-inline'” within script-src or style-src: nonce-source or hash-source specified


At the point I captured this profile the twitter tab was using 1.5gb of memory.

Did you ever succeed at grabbing an actual profile?

Flags: needinfo?(bas)

I'll try again, but this only degrades once the tab memory usage is severe and that seems to be breaking the profiler.

This is the longest profile I've managed to catch successfully. I feel like the contents aren't very surprising, but maybe it's more interesting than meets the eye (executive summary: a billion years spent in GC and layout)

https://perfht.ml/2MBxZyu

Flags: needinfo?(kg)

I agree with your assessment. Unsure what to do about it.

The profile in comment 10 hints that the web page is using quite a lot memory. Twitter has had several memory leaks in the past.
Katelyn, do you think you could create GC/CC logs once you notice memory usage has gone up from normal?
about:memory has Save concise and Save verbose buttons.
Logs may contain urls, so perhaps better to not share the logs to everyone, but if you're ok to share with me, just send a link to them to me.

Though, even before GC/CC logs, could you retry creating performance profile, but this time enable Memory measurements in the profiler UI.

(This might not be a Core: performance bug as such, but right now there isn't enough information to set the component.)

Flags: needinfo?(kg)
Priority: -- → P3

Still haven't managed to catch this in a log, but I had a twitter tab hit 3gb just now.
What's the best way to generate a log? Is there a way to do it on demand?

In the process of migrating remaining bugs to the new severity system, the severity for this bug cannot be automatically determined. Please retriage this bug using the new severity system.

Severity: critical → --
You need to log in before you can comment on or make changes to this bug.