Open Bug 1631680 Opened 2 years ago Updated 1 year ago

constant crashes on linux since january

Categories

(Core :: Graphics, defect, P2)

75 Branch
x86_64
Linux
defect

Tracking

()

Tracking Status
firefox75 --- wontfix
firefox76 --- wontfix
firefox77 --- fix-optional

People

(Reporter: me, Unassigned, NeedInfo)

References

(Depends on 2 open bugs)

Details

(Keywords: crash, regression)

Crash Data

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0

Steps to reproduce:

There's no way to reproduce it, it happens randomly. It crashes more tha 100 times a day. I've been sending lots of crash reports. As example:

https://crash-stats.mozilla.org/report/index/1859a0a1-2a41-4381-b2f9-8dd3d0200415 https://crash-stats.mozilla.org/report/index/35fb2b8d-f773-4c81-85cc-a1b560200415 https://crash-stats.mozilla.org/report/index/f81599e5-8671-45b4-8935-b42970200411 https://crash-stats.mozilla.org/report/index/01ca9596-1fac-4927-a61f-b736b0200219

Im using Firefox 75 on debian 0. Not the firefox that comes with the machine, I'm using the latest one from firefox.com

Actual results:

Crashes a lot, most of the time when I switch tabs.

Expected results:

no crashes

debian9 actualy

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Widget: Gtk
Product: Firefox → Core

bug 1342573 is about [@ ARGBSetRow_X86 ], but I don't have access.
bug 1604680 is about [@ __memcpy_sse2_unaligned_erms | SkSpriteBlitter_Memcpy::blitRect ].

Crash Signature: [@ ARGBSetRow_X86 ]
Component: Widget: Gtk → Graphics
Keywords: crash, regression
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
See Also: → 1604680

@Lee: Could you take a look at this? Both crashes look like alignment issues, so maybe they have the same cause.

Flags: needinfo?(lsalzman)
Priority: -- → P2

I believe this is just another instance of bug 1305298 or bug 1245239. Essentially those bugs are probably some various of the following - Linux overcommit behavior of shmems mean that we mmap in the shmem, and everything seems fine at the time. Then when we finally go to clear/initialize it, the kernel is finally forced to map the page and this causes it to OOM (which manifests as a SIGBUS). I am not sure we have any particularly good resolutions here...

Looking through crash counts, it seems this behavior hit spikes on both 68.2esr and and 70.0 release. Looking at the release calendar, those happened about the same time. 68.2esr seems like a clue, though, since 68.1esr/68.0esr don't seem to report the same spike.

Jeff, do you remember anything suspicious we did around that time?

Flags: needinfo?(lsalzman) → needinfo?(jmuizelaar)
See Also: → 1305298, 1245239

Looking at the crashes it seems to me that this is a mix of regular OOMs (a third of the crashes have very little physical memory available and almost no free swap space). In other cases it's obvious that we've run against some resource limit like shmem. Take this report for example:

https://crash-stats.mozilla.org/report/index/3a4f6f1d-ca8e-4237-bea8-d66c10200417#tab-details

The machine had gigabytes of free memory when it crashed. The third frame of that stack is:

mozilla::layers::ShmemTextureData::Create(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>, mozilla::gfx::SurfaceFormat, mozilla::gfx::BackendType, mozilla::layers::LayersBackend, mozilla::layers::TextureFlags, mozilla::layers::TextureAllocationFlags, mozilla::ipc::IShmemAllocator*)

So we probably tried to allocate too much shared memory and failed because of that. It's a shame we can't tell "regular" OOMs from shmem ones by just looking at the crash reason.

Please see these crashes of today. It's getting more and more frequent, I can't use firefox anymore :c

bp-cb88f98d-8180-4628-8cde-87c960200422 4/22/20, 8:28 PM
View
bp-fa203df4-dfb9-4a01-936f-14c690200422 4/22/20, 8:28 PM
View
bp-3295f7c0-79e3-4c86-9120-b24c50200422 4/22/20, 8:28 PM
View
bp-2612e107-a28b-4209-88f5-ad8d00200422 4/22/20, 8:28 PM
View
bp-fead311e-660d-4388-948a-423200200422 4/22/20, 8:28 PM
View
bp-1f9746fd-a49e-4296-9d22-8708a0200422 4/22/20, 8:28 PM
View
bp-18672bea-5b2e-4187-b6ac-dfa970200422 4/22/20, 8:28 PM
View
bp-c2df715e-896a-48c6-87d6-7a3250200422 4/22/20, 8:28 PM
View
bp-f2aa6b61-a98d-495f-8040-6dba30200422 4/22/20, 8:28 PM
View
bp-b98c0ee7-cc9a-4be0-a150-6ed500200422 4/22/20, 8:28 PM
View

Thanks for linking to those crashes, I looked through them and now I know what's going on. You seem to be running Firefox from within a Qubes OS container. I don't know what's Qubes default settings are for that but it seems that it's imposing very low resource limits on the Firefox process. I would ask you to check the output of df /dev/shm and ipcs --limits in a terminal but because of how Qubes works that probably wouldn't be relevant as Firefox would have different limits.

You need to find a way to increase those limits to prevent these crashes, starting with shared memory, because that's what you're bumping against. Unfortunately I don't know how Qubes sets up the limits for its containers so you will have to refer to your distro's documentation for that.

user@social:~$ df /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 1048576 501700 546876 48% /dev/shm

user@social:~$ ipcs

------ Message Queues --------
key msqid owner perms used-bytes messages

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 user 600 524288 2 dest
0x00000000 131073 user 600 7584992 2 dest
0x00000000 163842 user 600 1936 2 dest
0x00000000 7634947 user 600 364544 2 dest
0x00000000 5570564 user 600 22339584 2 dest
0x00000000 5603333 user 600 22339584 2 dest
0x00000000 5636102 user 600 22339584 2 dest
0x00000000 5013511 user 600 23040000 2 dest
0x00000000 720904 user 600 524288 2 dest
0x00000000 753673 user 600 4194304 2 dest
0x00000000 851978 user 600 524288 2 dest
0x00000000 5668875 user 600 22339584 2 dest
0x00000000 7569420 user 600 4194304 2 dest
0x00000000 7372813 user 600 405504 2 dest
0x00000000 7340047 user 600 405504 2 dest
0x00000000 7602192 user 600 364544 2 dest

------ Semaphore Arrays --------
key semid owner perms nsems

Thank you, I'm gonna research on this topic. However, I suspected memory usage was high, but I ended up having crashes with like 5 tabs open. Sometimes I restart the browser and from the 30 tabs, I only load one, and that one already crashes.

I use this Qube only for firefox and telegram, I've put 5gb of RAM for it, which is a debian9, I thougth it was enough.

5GiB of memory is more than enough, you should be able to open a lot of tabs in that. The problem is the shared memory limit: it's less than on other Linux distros and it seems that it's being used much more, possibly because of Qubes specific requirements. On my machine df /dev/shm looks like this:

Filesystem     1K-blocks  Used Available Use% Mounted on
shm             16444548 91428  16353120   1% /dev/shm

Try growing your /dev/shm, it should help.

(In reply to Gabriele Svelto [:gsvelto] from comment #10)

5GiB of memory is more than enough, you should be able to open a lot of tabs in that. The problem is the shared memory limit: it's less than on other Linux distros and it seems that it's being used much more, possibly because of Qubes specific requirements. On my machine df /dev/shm looks like this:

Filesystem     1K-blocks  Used Available Use% Mounted on
shm             16444548 91428  16353120   1% /dev/shm

Try growing your /dev/shm, it should help.

I talked to a Qubes dev and he thinks that, by your comment on the problem, you migth be thinking that Qubes runs containers. But actually it runs virtual machine instances on Xen in paravirtualized mode. So the only difference from my Qube for firefox and a real machine is in some linux drivers for paravirtualization.

Is it possible that, the last bugs I posted happened because of high RAM usage, but not all of them happen for this reason? Because I recall restarting firefox and with just one tab open (and like 30+ unloaded), it would still crash. Sometimes with just 5 tabs it would crash.\

Thank you so much!

(In reply to me from comment #11)

I talked to a Qubes dev and he thinks that, by your comment on the problem, you migth be thinking that Qubes runs containers. But actually it runs virtual machine instances on Xen in paravirtualized mode. So the only difference from my Qube for firefox and a real machine is in some linux drivers for paravirtualization.

I knew Qubes was using VMs but I didn't know that it didn't impose specific restrictions on them, so that's not the problem, thanks for investigating that.

Is it possible that, the last bugs I posted happened because of high RAM usage, but not all of them happen for this reason? Because I recall restarting firefox and with just one tab open (and like 30+ unloaded), it would still crash. Sometimes with just 5 tabs it would crash.\

I've looked at the data in comment 9 and suddenly realized that there's something that doesn't add up. In that scenario you've got 1GiB of space allocated to /dev/shm of which over half appears to be used, but the total of the shared memory segments displayed by ipcs is only ~128MiB. So it seems that memory is being consumed somewhere else.

There's two bit of information that could help figure out what's going on. Could you attach the contents of /proc/meminfo from inside the VM running Firefox and also the contents of about:memory from within Firefox (click on the measure and save button to get a compressed report from there).

(In reply to Gabriele Svelto [:gsvelto] from comment #12)

(In reply to me from comment #11)

I talked to a Qubes dev and he thinks that, by your comment on the problem, you migth be thinking that Qubes runs containers. But actually it runs virtual machine instances on Xen in paravirtualized mode. So the only difference from my Qube for firefox and a real machine is in some linux drivers for paravirtualization.

I knew Qubes was using VMs but I didn't know that it didn't impose specific restrictions on them, so that's not the problem, thanks for investigating that.

Is it possible that, the last bugs I posted happened because of high RAM usage, but not all of them happen for this reason? Because I recall restarting firefox and with just one tab open (and like 30+ unloaded), it would still crash. Sometimes with just 5 tabs it would crash.\

I've looked at the data in comment 9 and suddenly realized that there's something that doesn't add up. In that scenario you've got 1GiB of space allocated to /dev/shm of which over half appears to be used, but the total of the shared memory segments displayed by ipcs is only ~128MiB. So it seems that memory is being consumed somewhere else.

There's two bit of information that could help figure out what's going on. Could you attach the contents of /proc/meminfo from inside the VM running Firefox and also the contents of about:memory from within Firefox (click on the measure and save button to get a compressed report from there).

user@social:~$ cat /proc/meminfo
MemTotal: 5048676 kB
MemFree: 1326376 kB
MemAvailable: 1908572 kB
Buffers: 74228 kB
Cached: 1255292 kB
SwapCached: 32412 kB
Active: 2402048 kB
Inactive: 1002268 kB
Active(anon): 2036892 kB
Inactive(anon): 609080 kB
Active(file): 365156 kB
Inactive(file): 393188 kB
Unevictable: 119104 kB
Mlocked: 119104 kB
SwapTotal: 1048572 kB
SwapFree: 671740 kB
Dirty: 3144 kB
Writeback: 0 kB
AnonPages: 2182320 kB
Mapped: 812128 kB
Shmem: 571260 kB
Slab: 90364 kB
SReclaimable: 56620 kB
SUnreclaim: 33744 kB
KernelStack: 7712 kB
PageTables: 30792 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3572908 kB
Committed_AS: 5086108 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 600 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 944096 kB
DirectMap2M: 4380672 kB
DirectMap1G: 1048576 kB

about:memory: https://drive.google.com/file/d/1ZV-sbPMKDBBV5fdKtT4AI7fUtdpgw-8v/view?usp=sharing

Just so you can see that these crashes are state-related, sometimes a tab crashes and when I reload it, it crashes in the same spot forever. I restore it, scroll down, crashes in the same spot. Restore, scroll down, crashes in the same spot. If I don't scroll down, won't crash. However, simply creating a new tab with the same link solves this, I can scroll to that part and it won't crash.

Another way of making it crash it to quickly control alt between tabs. If I do it too much or too much fast it crashes

Thanks for helping me with this!

OK, memory usage in your report looks in line with what I would expect, with the exception of share memory. My Firefox instance with 40+ tabs open has less than half of what you have. I have a feeling I might have figured out what's wrong: according to the telemetry in some of the crashes your screen resolution is significantly higher than I have which means graphics memory buffer are going to be larger, potentially much larger.

Sotaro, do you know who could help here? It seems that we're allocating potentially very large buffers for holding textures here and we're doing so using shared memory (presumably because these will be passed between processes). Shared memory however is taken from tmpfs on Linux which cannot be swapped out and is a limited resource that might be used for other data (like files stored under /run).

Flags: needinfo?(sotaro.ikeda.g)

Compositor + Layers uses a lot of shmem at ShmemTextureData when multiple processes are used like e10s on Linux. On Linux, Bug 1549965 and Bug 1432531 might increase shmem usage.

If we want to decrease shmem usage at gfx, WebRender could be a choice.

Flags: needinfo?(sotaro.ikeda.g)

me, can you check if the problem happen on latest nightly with WebRender? WebRender could be enabled by changing pref "gfx.webrender.all=true" at about:config. And we could know if WebRender is enabled at about:support.

Flags: needinfo?(me)

Sotaro, do you know who could help here?

Compositor + Layers intrinsically uses a lot of shmem on Linux. In the past, gfx team reduced its usages. It is not trivial to reduce the memory usage more. For now, gfx team is focusing to working for WebRender instead of "Compositor + Layers". For shmem usage, Webrender should use less memory than "Compositor + Layers".

:nical might know a bug that gfx team planned for reducing shmem usage more for Layers.

Flags: needinfo?(nical.bugzilla)

(In reply to Sotaro Ikeda [:sotaro] from comment #16)

me, can you check if the problem happen on latest nightly with WebRender? WebRender could be enabled by changing pref "gfx.webrender.all=true" at about:config. And we could know if WebRender is enabled at about:support.

I setted it to true.

Here's my about:support:

WEBRENDER
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR
disabled by default: Disabled by default
WEBGPU
disabled by default: Disabled by default

Flags: needinfo?(me)

me, thank you! Can you check "Compositing" part in Graphics of about:support? You seemed to post only "Decision Log" part.

Flags: needinfo?(me)

(In reply to Sotaro Ikeda [:sotaro] from comment #19)

me, thank you! Can you check "Compositing" part in Graphics of about:support? You seemed to post only "Decision Log" part.

Compositing Basic
Asynchronous Pan/Zoom wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info GLX 1.4
GLX_VENDOR(client): Mesa Project and SGI
GLX_VENDOR(server): SGI
Extensions: GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_MESA_copy_sub_buffer GLX_MESA_multithread_makecurrent GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGI_make_current_read GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_EXT_texture_from_pixmap
WebGL 1 Driver Renderer VMware, Inc. -- Gallium 0.4 on llvmpipe (LLVM 3.9, 256 bits)
WebGL 1 Driver Version 3.0 Mesa 13.0.6
WebGL 1 Driver Extensions GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_fog_distance GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_stencil_export GL_ARB_shader_texture_lod GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_invalidate_subdata GL_ARB_program_interface_query GL_ARB_stencil_texturing GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_ARB_buffer_storage GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_seamless_cubemap_per_texture GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_get_texture_sub_image GL_EXT_polygon_offset_clamp GL_KHR_context_flush_control GL_MESA_shader_integer_functions
WebGL 1 Extensions ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_rgtc MOZ_debug OES_element_index_uint OES_fbo_render_mipmap 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_etc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info GLX 1.4
GLX_VENDOR(client): Mesa Project and SGI
GLX_VENDOR(server): SGI
Extensions: GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_MESA_copy_sub_buffer GLX_MESA_multithread_makecurrent GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGI_make_current_read GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_EXT_texture_from_pixmap
WebGL 2 Driver Renderer VMware, Inc. -- Gallium 0.4 on llvmpipe (LLVM 3.9, 256 bits)
WebGL 2 Driver Version 3.3 (Core Profile) Mesa 13.0.6
WebGL 2 Driver Extensions GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clip_control GL_ARB_compressed_texture_pixel_storage GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_stencil_export GL_ARB_shader_subroutine GL_ARB_shader_texture_lod GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_sRGB GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_IBM_multimode_draw_arrays GL_KHR_context_flush_control GL_KHR_debug GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_MESA_ycbcr_texture GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_OES_EGL_image GL_S3_s3tc
WebGL 2 Extensions EXT_color_buffer_float EXT_float_blend EXT_texture_compression_rgtc MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_etc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Window Protocol x11
Desktop Environment gnome
Off Main Thread Painting Enabled true
Off Main Thread Painting Worker Count 1
Target Frame Rate 60
GPU #1
Active Yes
Description Gallium 0.4 on llvmpipe (LLVM 3.9, 256 bits)
Vendor ID 0xffff
Device ID 0xffff
Driver Vendor mesa/llvmpipe
Driver Version 13.0.6.0
RAM 3358
Diagnostics
AzureCanvasBackend skia
AzureContentBackend skia
AzureFallbackCanvasBackend none
CairoUseXRender 0
CMSOutputProfile Empty profile data
Display0 3200x1800 default
DisplayCount 1
Decision Log
HW_COMPOSITING
blocked by env: Acceleration blocked by platform
OPENGL_COMPOSITING
unavailable by default: Hardware compositing is disabled
GPU_PROCESS
unavailable by env: Hardware compositing is unavailable.
WEBRENDER
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR
disabled by default: Disabled by default
WEBGPU
disabled by default: Disabled by default

Flags: needinfo?(me)

(In reply to me from comment #20)

(In reply to Sotaro Ikeda [:sotaro] from comment #19)
Compositing Basic

Thank you. Hmm, WebRender was not enabled, instead BasicCompositor was used. It uses a lot of shmem.

WEBRENDER
opt-in by default: WebRender is an opt-in feature

It seems that pref "gfx.webrender.all" was not set to true at about:config.

When it is set, we normally see the following

WEBRENDER
opt-in by default: WebRender is an opt-in feature
available by user: Force enabled by pref

me, did you actually set pref "gfx.webrender.all" to true at about:config with latest nightly?

Flags: needinfo?(me)

(In reply to Sotaro Ikeda [:sotaro] from comment #21)

(In reply to me from comment #20)

(In reply to Sotaro Ikeda [:sotaro] from comment #19)
Compositing Basic

Thank you. Hmm, WebRender was not enabled, instead BasicCompositor was used. It uses a lot of shmem.

WEBRENDER
opt-in by default: WebRender is an opt-in feature

It seems that pref "gfx.webrender.all" was not set to true at about:config.

When it is set, we normally see the following

WEBRENDER
opt-in by default: WebRender is an opt-in feature
available by user: Force enabled by pref

me, did you actually set pref "gfx.webrender.all" to true at about:config with latest nightly?

yes, I double clicked and it went from false to true

Flags: needinfo?(me)

(In reply to me from comment #22)

yes, I double clicked and it went from false to true

Hmm, it is weird. Did you restart Firefox after changing about:config?

Driver Version 13.0.6.0

That's a very old version of Mesa.

Depends on: 1633667

(In reply to Sotaro Ikeda [:sotaro] from comment #23)

(In reply to me from comment #22)

yes, I double clicked and it went from false to true

Hmm, it is weird. Did you restart Firefox after changing about:config?

after restarting and using for 4 days I got almost no crashes. My latest crash is from day 28 but its just 1.

I just reenabled because my firefox was very very slow, youtube was like 10fps and changing tabs was laggy, I just remembered this setting was activated and disabled it. But it looks like crashes stopped when it was active.

yep, less than 10 minutes after disabling it, first crash

I can watch youtube but almost always, when I scroll down to read the comments, it crashes.

Latest 3 crashes from now:

14e41477-e45c-c436-ed11-681f4583ed6d 5/1/20, 11:11 PM
4af77bc2-edb4-4661-8d1f-d83a8849d540 5/1/20, 11:09 PM
49db2fef-fb27-d022-1364-fe7f458cae62 5/1/20, 11:08 PM

(In reply to Gabriele Svelto [:gsvelto] from comment #24)

Driver Version 13.0.6.0

That's a very old version of Mesa.

I created an entirely new VM, based on Debian 10 now (freshly downloaded from qubes repo), because today the error became so constant on my debian 9 that I couldn't work on firefox anymore. Crashed every 10 seconds.

Perhaps the mesa driver is newer now on debian 10.

It already gave me 2 crashes but it's much more stable.

33cfcc56-6547-c3b4-b8a3-d44df4b0e052
03562475-5d6a-b9c1-2929-151de685c906

Remember that when doing the webrender thing as suggested, I spent 4 days without any crashes (possibly just one but I don't remember now). I had to turn it back though because firefox was very very slow

Also remember that things like scrolling down to youtube comments trigger this crash a lot. Watching the video or even opening lots of videos at the sime time does not make it crash.

Features
Compositing Basic
Asynchronous Pan/Zoom wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info GLX 1.4
GLX_VENDOR(client): Mesa Project and SGI
GLX_VENDOR(server): SGI
Extensions: GLX_ARB_context_flush_control GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_SGI_make_current_read
WebGL 1 Driver Renderer VMware, Inc. -- llvmpipe (LLVM 7.0, 256 bits)
WebGL 1 Driver Version 3.1 Mesa 18.3.6
WebGL 1 Driver Extensions GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_fog_distance GL_APPLE_packed_pixels GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_NV_primitive_restart GL_ARB_depth_clamp GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_ATI_texture_mirror_once GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended GL_ARB_compatibility GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_stencil_export GL_ARB_shader_texture_lod GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_ARB_draw_indirect GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_texture_compression_bptc GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_viewport_array GL_AMD_multi_draw_indirect GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_fragment_layer_viewport GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_enhanced_layouts GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_seamless_cubemap_per_texture GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_direct_state_access GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_transform_feedback_overflow_query GL_EXT_polygon_offset_clamp GL_KHR_context_flush_control GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_MESA_shader_integer_functions GL_ARB_polygon_offset_clamp
WebGL 1 Extensions ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_compression_rgtc MOZ_debug OES_element_index_uint OES_fbo_render_mipmap 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_astc WEBGL_compressed_texture_etc 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 GLX 1.4
GLX_VENDOR(client): Mesa Project and SGI
GLX_VENDOR(server): SGI
Extensions: GLX_ARB_context_flush_control GLX_ARB_create_context GLX_ARB_create_context_profile GLX_ARB_fbconfig_float GLX_ARB_framebuffer_sRGB GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_create_context_es2_profile GLX_EXT_create_context_es_profile GLX_EXT_fbconfig_packed_float GLX_EXT_framebuffer_sRGB GLX_EXT_import_context GLX_EXT_texture_from_pixmap GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_copy_sub_buffer GLX_MESA_query_renderer GLX_OML_swap_method GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGIX_visual_select_group GLX_SGI_make_current_read
WebGL 2 Driver Renderer VMware, Inc. -- llvmpipe (LLVM 7.0, 256 bits)
WebGL 2 Driver Version 3.3 (Core Profile) Mesa 18.3.6
WebGL 2 Driver Extensions GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_gpu_shader_int64 GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_compressed_texture_pixel_storage GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shader_stencil_export GL_ARB_shader_subroutine GL_ARB_shader_texture_lod GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_shader_integer_mix GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_IBM_multimode_draw_arrays GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_MESA_ycbcr_texture GL_NV_conditional_render GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_OES_EGL_image GL_S3_s3tc
WebGL 2 Extensions EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Window Protocol x11
Desktop Environment gnome
Off Main Thread Painting Enabled true
Off Main Thread Painting Worker Count 1
Target Frame Rate 60
GPU #1
Active Yes
Description llvmpipe (LLVM 7.0, 256 bits)
Vendor ID 0xffff
Device ID 0xffff
Driver Vendor mesa/llvmpipe
Driver Version 18.3.6.0
RAM 1608
Diagnostics
AzureCanvasBackend skia
AzureContentBackend skia
AzureFallbackCanvasBackend none
CairoUseXRender 0
CMSOutputProfile Empty profile data
Display0 3200x1800 default
DisplayCount 1
Decision Log
HW_COMPOSITING
blocked by env: Acceleration blocked by platform
OPENGL_COMPOSITING
unavailable by default: Hardware compositing is disabled
GPU_PROCESS
unavailable by env: Hardware compositing is unavailable.
WEBRENDER
opt-in by default: WebRender is an opt-in feature
WEBRENDER_QUALIFIED
denied by env: Not on allowlist
WEBRENDER_COMPOSITOR
disabled by default: Disabled by default
WEBGPU
disabled by default: Disabled by default
blocked by runtime: WebGPU can only be enabled in nightly

Let's confirm this, it's an OOM but it's a valid one.

I created an entirely new VM, based on Debian 10 now (freshly downloaded from qubes repo), because today the error became so constant on my debian 9 that I couldn't work on firefox anymore. Crashed every 10 seconds.

Perhaps the mesa driver is newer now on debian 10.

Yeah, 18.3.6, not super-modern but not too old either, definitely a lot better than 13.x.

33cfcc56-6547-c3b4-b8a3-d44df4b0e052
03562475-5d6a-b9c1-2929-151de685c906

I couldn't find them on https://crash-stats.mozilla.com, did you submit them?

Remember that when doing the webrender thing as suggested, I spent 4 days without any crashes (possibly just one but I don't remember now). I had to turn it back though because firefox was very very slow

Does your VM have a pass-through for the GPU or is it emulated? In the latter case mesa must be falling back to the software renderer which is very slow.

Also remember that things like scrolling down to youtube comments trigger this crash a lot. Watching the video or even opening lots of videos at the sime time does not make it crash.

That's normal, when you scroll down Firefox will generate a large buffer in shared memory that might be mutliple times the height of the page, that's needed for smooth scrolling. Opening multiple pages will allocate multiple smaller buffers which are less likely to trigger an OOM.

There's something else you might try to see if it improves stability. In comment 9 it appears that your /dev/shm is "only" 1GiB in size. Since you've got 5 GiB allocated to the VM could you try resizing it and then checking if Firefox still crashes? This command should double it (run as root):

mount -o remount,size=2g tmpfs /dev/shm

Status: UNCONFIRMED → NEW
Ever confirmed: true

(In reply to Gabriele Svelto [:gsvelto] from comment #29)

Let's confirm this, it's an OOM but it's a valid one.

I created an entirely new VM, based on Debian 10 now (freshly downloaded from qubes repo), because today the error became so constant on my debian 9 that I couldn't work on firefox anymore. Crashed every 10 seconds.

Perhaps the mesa driver is newer now on debian 10.

Yeah, 18.3.6, not super-modern but not too old either, definitely a lot better than 13.x.

33cfcc56-6547-c3b4-b8a3-d44df4b0e052
03562475-5d6a-b9c1-2929-151de685c906

I couldn't find them on https://crash-stats.mozilla.com, did you submit them?

Remember that when doing the webrender thing as suggested, I spent 4 days without any crashes (possibly just one but I don't remember now). I had to turn it back though because firefox was very very slow

Does your VM have a pass-through for the GPU or is it emulated? In the latter case mesa must be falling back to the software renderer which is very slow.

Also remember that things like scrolling down to youtube comments trigger this crash a lot. Watching the video or even opening lots of videos at the sime time does not make it crash.

That's normal, when you scroll down Firefox will generate a large buffer in shared memory that might be mutliple times the height of the page, that's needed for smooth scrolling. Opening multiple pages will allocate multiple smaller buffers which are less likely to trigger an OOM.

There's something else you might try to see if it improves stability. In comment 9 it appears that your /dev/shm is "only" 1GiB in size. Since you've got 5 GiB allocated to the VM could you try resizing it and then checking if Firefox still crashes? This command should double it (run as root):

mount -o remount,size=2g tmpfs /dev/shm

it worked pretty well for these days. Some crashes but not too much. But right now it started crashing a LOT on youtube, even though I added 3g of shared memory. Can you take a look to see if those are relted to shared memory?

bp-4acd1b3f-b587-4899-ba54-98b840200520 5/20/20, 12:55 AM
View
bp-9394edc0-10d6-4de7-a2b9-40acb0200520 5/20/20, 12:55 AM
View
bp-f0dda173-3926-430e-8b42-75bb40200520 5/20/20, 12:55 AM
View
bp-468c54bc-add2-4d4d-8102-d39b40200520 5/20/20, 12:55 AM
View
bp-fb279217-4423-490d-919e-c87510200520 5/20/20, 12:55 AM
View
bp-21892c9d-c4dc-400e-99ae-292bf0200520 5/20/20, 12:55 AM
View
bp-085d1433-c94a-4eec-8b92-7b5b30200520 5/20/20, 12:55 AM
View
bp-135a8f35-b885-4d51-8ef8-a5eae0200520 5/20/20, 12:55 AM
View
bp-1284ad30-6c01-4109-a169-2e2a20200520 5/20/20, 12:55 AM
View
bp-420e7093-1c32-4914-9cd8-c800d0200520 5/20/20, 12:55 AM
View
bp-e97751d3-d2a5-42c5-94db-038990200520 5/20/20, 12:55 AM
View
bp-0c4f2fcf-a60f-41f2-9d1f-458350200520 5/20/20, 12:55 AM
View
bp-4b1deca5-2a69-4041-a35f-85e190200520 5/20/20, 12:55 AM
View
bp-637f9955-829c-47fc-bab0-5e25b0200520 5/20/20, 12:55 AM
View
bp-f492073b-0f49-47de-a25c-cb9060200520 5/20/20, 12:55 AM
View
bp-de063f3d-9a5c-4c6b-907b-64cac0200520 5/20/20, 12:55 AM
View
bp-f7913b67-1691-4373-9e33-32bc50200520 5/20/20, 12:55 AM
View
bp-1418bdf9-5763-444f-acc2-697380200520 5/20/20, 12:55 AM
View
bp-9970bf13-99b9-476f-8f14-6e2ee0200520 5/20/20, 12:55 AM
View
bp-2d9b31bf-7193-48ce-ad90-0690c0200520 5/20/20, 12:55 AM
View
bp-ed9911a8-39d8-4f63-9d05-fc7090200520 5/20/20, 12:55 AM
View
bp-500e382d-9764-4b51-b9f1-f0da40200520 5/20/20, 12:55 AM
View
bp-b1d473ac-637a-4c05-83a0-144ea0200520 5/20/20, 12:55 AM
View
bp-b46df440-834f-4926-9026-9d30c0200520 5/20/20, 12:55 AM
View
bp-456a2bc6-b68b-4703-8afc-155210200520 5/20/20, 12:55 AM
View
bp-dfdc0270-8265-41e9-9fd0-033dd0200520 5/20/20, 12:55 AM
View
bp-acdd9311-bc00-4cfb-89f0-b4a6b0200520 5/20/20, 12:55 AM
View
bp-6db2988d-fa80-471c-9922-40f6d0200520 5/20/20, 12:55 AM
View
bp-f3ab1a18-ee1b-41dd-ab7b-12d080200520 5/20/20, 12:55 AM
View
bp-a3b7d844-8bfa-4131-9752-6ec720200520 5/20/20, 12:55 AM
View
bp-13f6f655-8de7-4a6e-aa12-8763d0200520 5/20/20, 12:55 AM
View
bp-bb8c38a0-5c18-4dd7-9fe9-831b00200520 5/20/20, 12:55 AM
View
bp-9720453d-6f7d-45ec-bbbe-e01530200520 5/20/20, 12:55 AM
View
bp-2ef713b0-667f-452e-8a53-90e2c0200520 5/20/20, 12:55 AM
View
bp-7df05ac7-677d-48a0-841e-d92430200520 5/20/20, 12:55 AM
View
bp-5d7e8951-d14d-4b19-89cc-6021e0200520 5/20/20, 12:55 AM
View
bp-f28801f8-235a-4747-b152-810610200520 5/20/20, 12:55 AM
View
bp-7eba7aab-d7aa-4b14-9b33-dbcfa0200520 5/20/20, 12:55 AM
View
bp-d72179d1-6690-411e-af46-607840200520 5/20/20, 12:55 AM
View
bp-b885c4a9-ecb2-4fa6-8a60-1d7b10200520 5/20/20, 12:55 AM
View
bp-36e944eb-d29c-42e1-b1c1-287740200520 5/20/20, 12:55 AM
View
bp-2e82f05c-dfb2-4e5a-826e-9f8d50200520 5/20/20, 12:55 AM

It seems like you're not running out of shared memory anymore (mostly) but running out of regular memory. I think it all boils down to your setup not having hardware acceleration and using the llvmpipe driver for rendering. In this setup either Firefox, mesa (or most likely both) seem to be using far too much memory. I've filed a bug to track memory use in this configuration, we'll see what comes out of it.

I don't know how to improve your situation in the meantime, Qubes OS FAQ specifically mentions that GPU hardware acceleration is unavailable outside of Dom0. You might try adjusting the amount of shared memory again, reducing it this time to leave more regular memory available in the hope that you'll strike an adequate balance.

My understanding is that this is a case of bug 1245239 which :aosmond is working on.

Flags: needinfo?(nical.bugzilla)
Depends on: 1245239
You need to log in before you can comment on or make changes to this bug.