Closed Bug 1707471 Opened 3 years ago Closed 3 years ago

Crash in [@ OOM | large | mozalloc_abort | moz_xmalloc | std::vector<T>::_Emplace_reallocate<T> | gl::Program::loadBinary]

Categories

(Core :: Graphics: WebRender, defect)

x86
Windows 8
defect

Tracking

()

RESOLVED DUPLICATE of bug 1695379
Tracking Status
firefox-esr78 --- unaffected
firefox88 --- affected
firefox89 - affected
firefox90 --- affected

People

(Reporter: aryx, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

[Tracking Requested - why for this release]:
Bad user experience (slow startup independent of the direction of the binary switch, nagging about crash reports if switch from 64 to 32 bit build), potential blocker for upgrading users from 32- to 64-bit builds.

Tested with Firefox 87.0, 88.0 and 90.0a1 20210424155423 on Windows 8.1.

This crash reproduces 100% on this machine with the following steps:

  1. Install Firefox as 64-bit build.
  2. Create a new profile, e.g. with the command line and -no-remote -P.
  3. Install Firefox as 32-bit.
  4. Launch the profile the 32-bit build.

Observation:
On launch, the window remains blank (white) for a few moments, about:crashes will list such a content crash. Launching the profile again will reproduce the issue.
The same behavior can be observed for 32-bit to 64-bit switches but that doesn't generate any crash reports.

Crash report: https://crash-stats.mozilla.org/report/index/2a8e7af2-c196-4198-be1f-ef1d10210425

MOZ_CRASH Reason: MOZ_CRASH()

Top 10 frames of crashing thread:

0 mozglue.dll mozalloc_abort memory/mozalloc/mozalloc_abort.cpp:33
1 mozglue.dll mozalloc_handle_oom memory/mozalloc/mozalloc_oom.cpp:51
2 mozglue.dll moz_xmalloc memory/mozalloc/mozalloc.cpp:54
3 libglesv2.dll std::vector<gl::ProgramVaryingRef, std::allocator<gl::ProgramVaryingRef> >::_Emplace_reallocate<gl::ProgramVaryingRef> vs2017_15.8.4/VC/include/vector:956
4 libglesv2.dll gl::Program::loadBinary gfx/angle/checkout/src/libANGLE/Program.cpp:1920
5 libglesv2.dll gl::Context::programBinary gfx/angle/checkout/src/libANGLE/Context.cpp:6941
6 libglesv2.dll gl::ProgramBinary gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp:1940
7 xul.dll gleam::gl::{{impl}}::program_binary third_party/rust/gleam/src/gles_fns.rs:1702
8 xul.dll webrender::device::gl::Device::create_program gfx/wr/webrender/src/device/gl.rs:2877
9 xul.dll webrender::renderer::shade::LazilyCompiledShader::get_internal gfx/wr/webrender/src/renderer/shade.rs:213
See Also: → 1695379

I think we should be able to fix this by adding a check for the architecture in RemoveShaderCacheFromDiskIfNecessary

Indeed.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE

I don't think we need to track it given the volume on beta.

You need to log in before you can comment on or make changes to this bug.