WebRender ANGLE Crash in [@ OOM | large | mozalloc_abort | moz_xmalloc | std::vector<T>::_Emplace_reallocate<T>]
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox87 | --- | wontfix |
firefox88 | --- | wontfix |
firefox89 | --- | wontfix |
firefox90 | --- | fixed |
People
(Reporter: cpeterson, Assigned: sotaro)
References
(Depends on 1 open bug)
Details
(Keywords: crash)
Crash Data
Crash report: https://crash-stats.mozilla.org/report/index/8221ac78-fb02-405f-8dc5-8351a0210227
I hit this WebRender ANGLE OOM crash three times today in 32-bit Firefox build on 64-bit Windows 10.
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:2972
9 xul.dll webrender::renderer::shade::LazilyCompiledShader::get_internal gfx/wr/webrender/src/renderer/shade.rs:201
Comment 1•3 years ago
|
||
This was caused by a 1.63 GB allocation, which doesn't seem sane.
Comment 2•3 years ago
|
||
Hey, can you reproduce this and if so, on what site?
Comment 3•3 years ago
|
||
Can you get a full stack from a debugger? It's difficult to tell what's actually going on here from the crash stack.
Reporter | ||
Comment 4•3 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #2)
Hey, can you reproduce this and if so, on what site?
(In reply to Jeff Muizelaar [:jrmuizel] from comment #3)
Can you get a full stack from a debugger? It's difficult to tell what's actually going on here from the crash stack.
I haven't seen this crash since I reported it on 2021-02-26. I don't know what site might have triggered it. My crash reports didn't have URLs because they were from the gpu process. But I always have a dozen Google Docs and Sheets tabs open, so that might be related.
Comment 5•3 years ago
|
||
I'll improve the signature and take a look at a minidump.
Comment 6•3 years ago
|
||
This crash is happening here:
https://searchfox.org/mozilla-central/rev/166dfa51ee50207a253fc577b9a596e64f24258c/gfx/angle/checkout/src/libANGLE/Program.cpp#5391
It seems like we must be reading a very large uniformIndexCount out of the stream and that's causing us to OOM.
Comment 7•3 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #6)
This crash is happening here:
https://searchfox.org/mozilla-central/rev/166dfa51ee50207a253fc577b9a596e64f24258c/gfx/angle/checkout/src/libANGLE/Program.cpp#5391It seems like we must be reading a very large uniformIndexCount out of the stream and that's causing us to OOM.
This seems exploitable since streams can be manipulated. Should we put a sensible cap here on uniformIndexCount -- in addition to fixing the bug?
Comment 8•3 years ago
|
||
The streams are not exposed to webcontent. We create them, store them to disk and load them.
Updated•3 years ago
|
Comment 9•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 10•3 years ago
|
||
Bug 1707471 looks similar problem.
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Description
•