Closed Bug 1509229 Opened 1 year ago Closed 1 year ago

Hit MOZ_CRASH(internal error: entered unreachable code: bug: unexpected quantized result) at gfx\webrender\src\glyph_rasterizer\mod.rs:358

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla66
Tracking Status
firefox-esr60 --- unaffected
firefox64 --- unaffected
firefox65 --- wontfix
firefox66 --- fixed

People

(Reporter: tsmith, Assigned: lsalzman)

References

(Blocks 3 open bugs)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

Attached file testcase.html
Reduced with m-c:
BuildID=20181120164749
SourceStamp=8eff0a4f5d8f4442ce233d492185a90c460846ef

Hit MOZ_CRASH(internal error: entered unreachable code: bug: unexpected quantized result) at gfx\webrender\src\glyph_rasterizer\mod.rs:358

23|0|xul.dll|static void MOZ_CrashOOL(const char *, int, const char *)|hg:hg.mozilla.org/mozilla-central:mfbt/Assertions.h:8eff0a4f5d8f4442ce233d492185a90c460846ef|311|0x0
23|1|xul.dll|GeckoCrashOOL|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsAppRunner.cpp:8eff0a4f5d8f4442ce233d492185a90c460846ef|5350|0x5
23|2|xul.dll|static void gkrust_shared::panic_hook(struct core::panic::PanicInfo *)|hg:hg.mozilla.org/mozilla-central:toolkit/library/rust/shared/lib.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|234|0x7
23|3|xul.dll|static void core::ops::function::Fn::call<fn(core::panic::PanicInfo*),(core::panic::PanicInfo*)>( * *, struct core::panic::PanicInfo *)|/libcore/ops/function.rs|78|0xc
23|4|xul.dll|void std::panicking::rust_panic_with_hook()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libstd/panicking.rs|481|0x6
23|5|xul.dll|static void std::panicking::continue_panic_fmt()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libstd/panicking.rs|391|0x17
23|6|xul.dll|void std::panicking::begin_panic_fmt()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libstd/panicking.rs|346|0x5
23|7|xul.dll|struct webrender::glyph_rasterizer::GlyphKey webrender::glyph_rasterizer::GlyphKey::new(struct euclid::point::TypedPoint2D<f32, webrender_api::units::DevicePixel>, webrender::glyph_rasterizer::SubpixelDirection)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/glyph_rasterizer/mod.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|0|0xa
23|8|xul.dll|static bool webrender::prim_store::PrimitiveStore::prepare_prim_for_render(struct webrender::prim_store::PrimitiveInstance *, struct webrender::frame_builder::PrimitiveContext *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *, struct webrender_api::display_list::BuiltDisplayList *, unsigned __int64)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2404|0xa4
23|9|xul.dll|void webrender::prim_store::PrimitiveStore::prepare_primitives(struct webrender::picture::PrimitiveList *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2508|0x48
23|10|xul.dll|static bool webrender::prim_store::PrimitiveStore::prepare_prim_for_render(struct webrender::prim_store::PrimitiveInstance *, struct webrender::frame_builder::PrimitiveContext *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *, struct webrender_api::display_list::BuiltDisplayList *, unsigned __int64)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2185|0x28
23|11|xul.dll|void webrender::prim_store::PrimitiveStore::prepare_primitives(struct webrender::picture::PrimitiveList *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2508|0x48
23|12|xul.dll|static bool webrender::prim_store::PrimitiveStore::prepare_prim_for_render(struct webrender::prim_store::PrimitiveInstance *, struct webrender::frame_builder::PrimitiveContext *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *, struct webrender_api::display_list::BuiltDisplayList *, unsigned __int64)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2185|0x28
23|13|xul.dll|void webrender::prim_store::PrimitiveStore::prepare_primitives(struct webrender::picture::PrimitiveList *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2508|0x48
23|14|xul.dll|static bool webrender::prim_store::PrimitiveStore::prepare_prim_for_render(struct webrender::prim_store::PrimitiveInstance *, struct webrender::frame_builder::PrimitiveContext *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *, struct webrender_api::display_list::BuiltDisplayList *, unsigned __int64)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2185|0x28
23|15|xul.dll|void webrender::prim_store::PrimitiveStore::prepare_primitives(struct webrender::picture::PrimitiveList *, struct webrender::frame_builder::PictureContext *, struct webrender::frame_builder::PictureState *, struct webrender::frame_builder::FrameBuildingContext *, struct webrender::frame_builder::FrameBuildingState *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/prim_store.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|2508|0x48
23|16|xul.dll|struct webrender::tiling::Frame webrender::frame_builder::FrameBuilder::build(struct webrender::resource_cache::ResourceCache *, struct webrender::gpu_cache::GpuCache *, struct webrender::render_backend::FrameStamp, struct webrender::clip_scroll_tree::ClipScrollTree *, struct std::collections::hash::map::HashMap<webrender_api::api::PipelineId, alloc::sync::Arc<webrender::scene::ScenePipeline>, core::hash::BuildHasherDefault<fxhash::FxHasher>> *, struct euclid::scale::TypedScale<f32, webrender_api::units::WorldPixel, webrender_api::units::DevicePixel>, char, struct euclid::point::TypedPoint2D<f32, webrender_api::units::WorldPixel>, struct webrender::profiler::TextureCacheProfileCounters *, struct webrender::profiler::GpuCacheProfileCounters *, struct webrender::scene::SceneProperties *, struct webrender::render_backend::FrameResources *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/frame_builder.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|349|0x4f4
23|17|xul.dll|static struct webrender::internal_types::RenderedDocument webrender::render_backend::Document::build_frame(struct webrender::resource_cache::ResourceCache *, struct webrender::gpu_cache::GpuCache *, struct webrender::profiler::ResourceProfileCounters *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/render_backend.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|413|0x42
23|18|xul.dll|static void webrender::render_backend::RenderBackend::update_document(struct webrender_api::api::DocumentId, struct alloc::vec::Vec<webrender_api::api::ResourceUpdate>, union core::option::Option<webrender::scene_builder::DocumentResourceUpdates>, struct alloc::vec::Vec<webrender_api::api::FrameMsg>, struct alloc::vec::Vec<webrender_api::api::NotificationRequest>, bool, bool, unsigned int *, struct webrender::profiler::BackendProfileCounters *, bool)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/render_backend.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|1212|0x1d
23|19|xul.dll|static bool webrender::render_backend::RenderBackend::process_api_msg(union webrender_api::api::ApiMsg, struct webrender::profiler::BackendProfileCounters *, unsigned int *)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/render_backend.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|1025|0x13b
23|20|xul.dll|void webrender::render_backend::RenderBackend::run(struct webrender::profiler::BackendProfileCounters)|hg:hg.mozilla.org/mozilla-central:gfx/webrender/src/render_backend.rs:8eff0a4f5d8f4442ce233d492185a90c460846ef|800|0x96
23|21|||||0x2
23|22|xul.dll|void std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>(struct closure)|/libstd/sys_common/backtrace.rs|136|0x81f
23|23|xul.dll|static void std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>(unsigned char *)|/libstd/panicking.rs|310|0x19
23|24|xul.dll|void panic_abort::__rust_maybe_catch_panic()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libpanic_abort/lib.rs|41|0x5
23|25|xul.dll|static void alloc::boxed::{{impl}}::call_box<(),closure>(struct closure *, <NoType>)|/liballoc/boxed.rs|646|0x7b
23|26|xul.dll|void std::sys_common::thread::start_thread()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libstd/sys_common/thread.rs|24|0xe
23|27|xul.dll|static void std::sys::windows::thread::{{impl}}::new::thread_start()|/rustc/da5f414c2c0bfe5198934493f04c676e2b23ff2e/src/libstd/sys/windows/thread.rs|56|0x5
23|28|kernel32.dll|CicInputContext::DestroyInputContext()|||0x17c
23|29|mozglue.dll|static void patched_BaseThreadInitThunk(int, void *, void *)|hg:hg.mozilla.org/mozilla-central:mozglue/build/WindowsDllBlocklist.cpp:8eff0a4f5d8f4442ce233d492185a90c460846ef|753|0xe
23|30|ntdll.dll|CInputContext::SetSelection(unsigned long,unsigned long,TF_SELECTION const *)|||0x91
Flags: in-testsuite?
The unreachable! was originally added in https://github.com/servo/webrender/pull/1715 but moved to a different file in https://github.com/servo/webrender/pull/2738.

/cc Lee to take a look at this whenever he gets a chance.
Priority: -- → P3
I can't get this to reproduce at all with the supplied testcase on Windows. What am I missing?
Flags: needinfo?(twsmith)
(In reply to Lee Salzman [:lsalzman] from comment #2)
> What am I missing?

I don't think you are missing anything. It does not reproduce on a recent build :)
Flags: needinfo?(twsmith)
Assignee: nobody → lsalzman
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Worth landing this testcase as a crashtest still?
Flags: needinfo?(lsalzman)
Target Milestone: --- → mozilla66
(In reply to Ryan VanderMeulen [:RyanVM] from comment #4)
> Worth landing this testcase as a crashtest still?

The testcase doesn't seem to reproduce at all, even for the original reporter, and that's before I fixed anything. So, for now, I'd say no.
Flags: needinfo?(lsalzman)
Flags: in-testsuite? → in-testsuite-
You need to log in before you can comment on or make changes to this bug.