Hit MOZ_CRASH(assertion failed: clip_task_index != ClipTaskIndex::INVALID) at gfx/wr/webrender/src/batch.rs:2821
Categories
(Core :: Graphics: WebRender, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox85 | --- | affected |
People
(Reporter: tsmith, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: assertion)
The test case has been difficult to reduce. I will add Pernosco link shortly.
Hit MOZ_CRASH(assertion failed: clip_task_index != ClipTaskIndex::INVALID) at gfx/wr/webrender/src/batch.rs:2821
#0 0x7f482f461cb5 in MOZ_Crash /builds/worker/workspace/obj-build/dist/include/mozilla/Assertions.h:254:3
#1 0x7f482f461cb5 in RustMozCrash src/mozglue/static/rust/wrappers.cpp:17:3
#2 0x7f482f461c64 in mozglue_static::panic_hook::h6e70bafc479dc06d src/mozglue/static/rust/lib.rs:89:9
#3 0x7f482f46158b in core::ops::function::Fn::call::h01fce3a141895069 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:70:5
#4 0x7f4830425b17 in std::panicking::rust_panic_with_hook::haa1ed36ada4ffb03 /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:573:17
#5 0x7f482ecfa5a5 in std::panicking::begin_panic::_$u7b$$u7b$closure$u7d$$u7d$::h71d3c72cb12674fd /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:498:9
#6 0x7f482ecec9ff in std::sys_common::backtrace::__rust_end_short_backtrace::he845e1c15d2231ac /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:153:18
#7 0x7f482ecfa56e in std::panicking::begin_panic::h7a8bb569a0f27d1b /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:497:12
#8 0x7f482ee1067c in webrender::batch::BatchBuilder::add_segment_to_batch::hd7de92aa38d095c2 src/gfx/wr/webrender/src/batch.rs:2821:9
#9 0x7f482ee10ca8 in webrender::batch::BatchBuilder::add_segmented_prim_to_batch::h7aa48a4034f66637 src/gfx/wr/webrender/src/batch.rs:2887:21
#10 0x7f482ee0373e in webrender::batch::BatchBuilder::add_prim_to_batch::h7b297ad58ffc8db1 src/gfx/wr/webrender/src/batch.rs:1029:17
#11 0x7f482edff2b4 in webrender::batch::BatchBuilder::add_pic_to_batch::h04730dee7f175422 src/gfx/wr/webrender/src/batch.rs:754:17
#12 0x7f482ee05082 in webrender::batch::BatchBuilder::add_prim_to_batch::h7b297ad58ffc8db1 src/gfx/wr/webrender/src/batch.rs:1998:25
#13 0x7f482edff2b4 in webrender::batch::BatchBuilder::add_pic_to_batch::h04730dee7f175422 src/gfx/wr/webrender/src/batch.rs:754:17
#14 0x7f482ef02689 in _$LT$webrender..render_target..ColorRenderTarget$u20$as$u20$webrender..render_target..RenderTarget$GT$::build::hdc3cf79a750e09ee src/gfx/wr/webrender/src/render_target.rs:399:21
#15 0x7f482ee6e97e in webrender::render_target::RenderTargetList$LT$T$GT$::build::hed4992dd07771ace src/gfx/wr/webrender/src/render_target.rs:214:13
#16 0x7f482ee6e97e in webrender::frame_builder::build_render_pass::hf50c79dc30adc965 src/gfx/wr/webrender/src/frame_builder.rs:956:13
#17 0x7f482ee6e97e in webrender::frame_builder::FrameBuilder::build::hc714398ccfd072db src/gfx/wr/webrender/src/frame_builder.rs:591:17
#18 0x7f482eee8504 in webrender::render_backend::Document::build_frame::h857fa5717e387402 src/gfx/wr/webrender/src/render_backend.rs:622:25
#19 0x7f482eef8e41 in webrender::render_backend::RenderBackend::update_document::h658c80cf708466af src/gfx/wr/webrender/src/render_backend.rs:1501:41
#20 0x7f482eef0966 in webrender::render_backend::RenderBackend::prepare_transactions::h94057ff9965b1c61 src/gfx/wr/webrender/src/render_backend.rs:1356:28
#21 0x7f482eef0966 in webrender::render_backend::RenderBackend::process_api_msg::h6690b6762a0e5fef src/gfx/wr/webrender/src/render_backend.rs:1216:17
#22 0x7f482ecee303 in webrender::render_backend::RenderBackend::run::h2f9c8dc0d3ec756d src/gfx/wr/webrender/src/render_backend.rs:892:21
#23 0x7f482ecee303 in webrender::renderer::Renderer::new::_$u7b$$u7b$closure$u7d$$u7d$::h2568c5f3e7c1ebfc src/gfx/wr/webrender/src/renderer.rs:2781:13
#24 0x7f482ecee303 in std::sys_common::backtrace::__rust_begin_short_backtrace::h6cde425ea617684e /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:137:18
#25 0x7f482ed0e30f in std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h00f0b0cb19182be4 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:458:17
#26 0x7f482ed0e30f in _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hf43f5114ef875487 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panic.rs:308:9
#27 0x7f482ed0e30f in std::panicking::try::do_call::h4cb181af34bf1a1f /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:373:40
#28 0x7f482ed0e30f in std::panicking::try::h4f83ff7f3527638f /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panicking.rs:337:19
#29 0x7f482ed0e30f in std::panic::catch_unwind::hcbba4c6bfbaa1b67 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/panic.rs:379:14
#30 0x7f482ed0e30f in std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::hd8ac2883c989d090 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/std/src/thread/mod.rs:457:30
#31 0x7f482ed0e30f in core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h6decdaa530827fa5 /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
#32 0x7f48304350c9 in _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h670c50864ac2cb92 /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042:9
#33 0x7f48304350c9 in _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h2511952749086d81 /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042:9
#34 0x7f48304350c9 in std::sys::unix::thread::Thread::new::thread_start::h5ad4ddffe24373a8 /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys/unix/thread.rs:87:17
#35 0x7f4843d096da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
#36 0x7f4842ce7a3e in clone /build/glibc-2ORdQG/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Reporter | ||
Comment 1•4 years ago
•
|
||
A Pernosco session is available here: https://pernos.co/debug/OtppgSZJ-m6kkVgJMIl8HA/index.html
Comment 2•4 years ago
|
||
S3 because no information about how often the crash occurs. P2 because we have a Pernosco trace, so it's definitely actionable.
(The Pernosco folks are rebuilding the database right now.)
Comment 3•4 years ago
|
||
If the debug information is correct (rust debug info with our rustc settings is sometimes unreliable in pernosco, I think?) I suspect this might be because the test case has so many elements with complex clips that is has exceeded the maximum number of clip masks that can be rendered per frame, which is currently set at 2^16.
If this is the case, we could add some early outs to skip creating clip masks when this limit is exceeded (since there is no real world content that would need this many masks, nor would the performance or memory usage be acceptable).
Reporter | ||
Comment 4•4 years ago
|
||
How does this look? https://pernos.co/debug/9o9iKn-tFun7tMqzAR3tGA/index.html
Comment 5•4 years ago
|
||
Nical, how do we want to handle cases where a fuzzing case exceeds 2^16 clip tasks? I thought we had already hit this and had a fix in place, but I am probably misremembering.
Updated•4 years ago
|
Description
•