Open Bug 1711129 Opened 4 years ago Updated 1 year ago

Crash in webrender::scene_building::SceneBuilder::build_item "missing key"

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

People

(Reporter: jrmuizel, Unassigned)

References

(Blocks 1 open bug)

Details

Crash Data

No description provided.
Crash Signature: [@ core::option::expect_failed | std::collections::hash::map::{{impl}}::index<T> | webrender::scene_building::SceneBuilder::build_item] [@ core::option::expect_failed | std::collections::hash::map::{{impl}}::index<T> | webrender::scene_building::SceneBui…
Blocks: wr-stability
Severity: -- → S3
See Also: → 1656593
See Also: → 1751903

Inlined functions makes these crashes more readable, see this example. We need to tweak the signature though as the new one is too generic. I think the first interesting frame is the second inlined call in the 11th frame (i.e. webrender::intern::Interner<T>::intern(webrender::prim_store::PrimKey<T>*, webrender::scene_building::impl$4::create_primitive::closure_env$0<T>)).

The stacks on that crash report don't really make sense. Vec::len() doesn't call expect()

I'm adding the signature from b8e45f8a-14f1-49dd-a5e7-881360220917 which has a stack that seems to make more sense, in particular the inlined frames are:

hashbrown::raw::ProbeSeq::move_next(unsigned long long)
hashbrown::raw::RawTableInner<alloc::alloc::Global>::find_inner(unsigned long long, ref_mut$<dyn$<core::ops::function::FnMut<tuple$<usize>, assoc$<Output, bool> > > >)
hashbrown::raw::RawTable<tuple$<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex>, alloc::alloc::Global>::find(unsigned long long, hashbrown::map::equivalent_key::closure_env$0<webrender_api::display_item::SpatialId, webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex>)
hashbrown::raw::RawTable<tuple$<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex>, alloc::alloc::Global>::get(unsigned long long, hashbrown::map::equivalent_key::closure_env$0<webrender_api::display_item::SpatialId, webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex>)
hashbrown::map::HashMap<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex, core::hash::BuildHasherDefault<fxhash::FxHasher>, alloc::alloc::Global>::get_inner(webrender_api::display_item::SpatialId*)
hashbrown::map::HashMap<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex, core::hash::BuildHasherDefault<fxhash::FxHasher>, alloc::alloc::Global>::get(webrender_api::display_item::SpatialId*)
std::collections::hash::map::HashMap<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex, core::hash::BuildHasherDefault<fxhash::FxHasher> >::get(webrender_api::display_item::SpatialId*)
std::collections::hash::map::impl$9::index(std::collections::hash::map::HashMap<webrender_api::display_item::SpatialId, webrender::spatial_tree::SpatialNodeIndex, core::hash::BuildHasherDefault<fxhash::FxHasher> >*, webrender_api::display_item::SpatialId*, core::panic::location::Location*)
webrender::scene_building::NodeIdToIndexMapper::get_spatial_node_index(webrender_api::display_item::SpatialId)
webrender::scene_building::SceneBuilder::get_space(webrender_api::display_item::SpatialId)
webrender::scene_building::SceneBuilder::add_image_mask_clip_node(webrender_api::display_item::ClipId, webrender_api::display_item::SpatialId, webrender_api::display_item::ImageMask*, webrender_api::display_item::FillRule, webrender_api::display_list::ItemRange<euclid::point::Point2D<f32, webrender_api::units::LayoutPixel> >)
webrender::scene_building::SceneBuilder::build_item(webrender_api::display_list::DisplayItemRef)
Crash Signature: webrender::scene_building::SceneBuilder::build_items] [@ core::option::expect_failed | trunc | webrender::scene_building::SceneBuilder::build_item] [@ core::option::expect_failed | webrender::scene_building::SceneBuilder::build_item] → webrender::scene_building::SceneBuilder::build_items] [@ core::option::expect_failed | trunc | webrender::scene_building::SceneBuilder::build_item] [@ core::option::expect_failed | webrender::scene_building::SceneBuilder::build_item] [@ core::option::…
Flags: needinfo?(gwatson)
Flags: needinfo?(gwatson)
Flags: needinfo?(gwatson)

Not actionable without a repro

Flags: needinfo?(gwatson)

Based on the topcrash criteria, the crash signatures linked to this bug are not in the topcrash signatures anymore.

For more information, please visit auto_nag documentation.

Keywords: topcrash

Sorry for removing the keyword earlier but there is a recent change in the ranking, so the bug is again linked to a topcrash signature, which matches the following criterion:

  • Top 5 GPU process crashes on release

For more information, please visit auto_nag documentation.

Keywords: topcrash

Based on the topcrash criteria, the crash signatures linked to this bug are not in the topcrash signatures anymore.

For more information, please visit auto_nag documentation.

Keywords: topcrash

Sorry for removing the keyword earlier but there is a recent change in the ranking, so the bug is again linked to a topcrash signature, which matches the following criterion:

  • Top 5 GPU process crashes on release

For more information, please visit BugBot documentation.

Keywords: topcrash

Based on the topcrash criteria, the crash signatures linked to this bug are not in the topcrash signatures anymore.

For more information, please visit BugBot documentation.

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