Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows webrender exception #15651

Closed
jonathandturner opened this issue Feb 19, 2017 · 6 comments
Closed

Windows webrender exception #15651

jonathandturner opened this issue Feb 19, 2017 · 6 comments

Comments

@jonathandturner
Copy link

@jonathandturner jonathandturner commented Feb 19, 2017

Running a recent build, I'm seeing this when trying to open reddit. I'm trying to track down why #15428 happens.

assertion failed: width > 0 && height > 0 (thread RenderBackend, at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\platform\windows\font.rs:90)
stack backtrace:
   0:     0x7ff6083f2d51 - backtrace::backtrace::trace<closure>
                        at C:\msys64\Source\servo\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.0\src\backtrace\mod.rs:42
   1:     0x7ff6083e9849 - backtrace::capture::Backtrace::new
                        at C:\msys64\Source\servo\target\debug\build\backtrace-17fa5380aeaf9437\out\capture.rs:79
   2:     0x7ff6074ea9e8 - servo::main::{{closure}}
                        at C:\msys64\Source\servo\ports\servo\main.rs:122
   3:     0x7ff60c29cc40 - std::panicking::rust_panic_with_hook
                        at C:\projects\rust\src\libstd\panicking.rs:546
   4:     0x7ff60bf7c808 - std::panicking::begin_panic<&str>
                        at C:\projects\rust\src\libstd\panicking.rs:507
   5:     0x7ff60bfef74b - webrender::platform::windows::font::get_glyph_dimensions_with_analysis
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\platform\windows\font.rs:90
   6:     0x7ff60bff04e0 - webrender::platform::windows::font::FontContext::get_glyph_dimensions
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\platform\windows\font.rs:206
   7:     0x7ff60bdbbd18 - webrender::resource_cache::{{impl}}::get_glyph_dimensions::{{closure}}
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\resource_cache.rs:422
   8:     0x7ff60bd1b2fd - std::thread::local::LocalKey<core::cell::RefCell<webrender::platform::windows::font::FontContext>>::with<core::cell::RefCell<webrender::platform::windows::font::FontContext>,closure,()>
                        at C:\projects\rust\src\libstd\thread\local.rs:253
   9:     0x7ff60bdbbb28 - webrender::resource_cache::ResourceCache::get_glyph_dimensions
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\resource_cache.rs:410
  10:     0x7ff60bf32742 - webrender::prim_store::PrimitiveStore::prepare_prim_for_render
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\prim_store.rs:1082
  11:     0x7ff60bdb039c - webrender::frame_builder::LayerRectCalculationAndCullingPass::handle_primitive_run
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame_builder.rs:1154
  12:     0x7ff60bdaf5a5 - webrender::frame_builder::LayerRectCalculationAndCullingPass::run
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame_builder.rs:1012
  13:     0x7ff60bdaf2f2 - webrender::frame_builder::LayerRectCalculationAndCullingPass::create_and_run
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame_builder.rs:1000
  14:     0x7ff60bdac1f6 - webrender::frame_builder::FrameBuilder::build_layer_screen_rects_and_cull_layers
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame_builder.rs:673
  15:     0x7ff60bdae197 - webrender::frame_builder::FrameBuilder::build
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame_builder.rs:893
  16:     0x7ff60bda7f61 - webrender::frame::{{impl}}::build_frame::{{closure}}
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame.rs:668
  17:     0x7ff60bcff201 - core::option::Option<&mut webrender::frame_builder::FrameBuilder>::map<&mut webrender::frame_builder::FrameBuilder,webrender::tiling::Frame,closure>
                        at C:\projects\rust\src\libcore\option.rs:383
  18:     0x7ff60bda7c66 - webrender::frame::Frame::build_frame
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame.rs:663
  19:     0x7ff60bda7aa6 - webrender::frame::Frame::build
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\frame.rs:651
  20:     0x7ff60bf3884b - webrender::render_backend::RenderBackend::render
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\render_backend.rs:413
  21:     0x7ff60bdb87f9 - webrender::render_backend::{{impl}}::run::{{closure}}
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\render_backend.rs:350
  22:     0x7ff60bdb442c - webrender::profiler::TimeProfileCounter::profile<webrender::internal_types::RendererFrame,closure>
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\profiler.rs:150
  23:     0x7ff60bf36ecd - webrender::render_backend::RenderBackend::run
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\render_backend.rs:348
  24:     0x7ff60bdc757a - webrender::renderer::{{impl}}::new::{{closure}}
                        at C:\msys64\Source\servo\.cargo\git\checkouts\webrender-c3596abe1cf4f320\71b7998\webrender\src\renderer.rs:798
  25:     0x7ff60bd99c5d - std::panic::{{impl}}::call_once<(),closure>
                        at C:\projects\rust\src\libstd\panic.rs:296
  26:     0x7ff60bf7ce77 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at C:\projects\rust\src\libstd\panicking.rs:450
  27:     0x7ff60c29e1e2 - panic_unwind::__rust_maybe_catch_panic
                        at C:\projects\rust\src\libpanic_unwind\lib.rs:98
  28:     0x7ff60bf7c934 - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at C:\projects\rust\src\libstd\panicking.rs:429
  29:     0x7ff60bd1233f - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at C:\projects\rust\src\libstd\panic.rs:361
  30:     0x7ff60bd13b46 - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at C:\projects\rust\src\libstd\thread\mod.rs:357
  31:     0x7ff60bd54413 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at C:\projects\rust\src\liballoc\boxed.rs:630
  32:     0x7ff60c297d4f - std::sys::imp::thread::{{impl}}::new::thread_start
                        at C:\projects\rust\src\libstd\sys\windows\thread.rs:50
  33:     0x7ff910c88364 - BaseThreadInitThunk
ERROR:servo: assertion failed: width > 0 && height > 0
assertion failed: self.load.is_none() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(1) }, at C:\msys64\Source\servo\components\script\document_loader.rs:78)
@glennw
Copy link
Member

@glennw glennw commented Feb 19, 2017

cc @vvuk and @changm

@jdm
Copy link
Member

@jdm jdm commented Feb 20, 2017

Looks identical to #15623.

@jonathandturner
Copy link
Author

@jonathandturner jonathandturner commented Feb 20, 2017

@jdm - could be. I'm seeing this behaviour on all four of the 2nd row of the showcase (reddit, hacker news, servo site, rust site) as well as wikipedia.

@Soletek
Copy link

@Soletek Soletek commented Feb 20, 2017

This problem occurs when rendering text phrases containing spaces. DirectWrite's GetAlphaTextureBounds method returns zero-sized rectangle for the space glyph which gets caught in assertion at servo-dwrote.

@changm
Copy link
Collaborator

@changm changm commented Feb 21, 2017

Thanks for finding this. Should be fixed with the PR.

bors-servo added a commit to servo/webrender that referenced this issue Feb 22, 2017
return none glyph dimensions if width or height are zero

To solve issue servo/servo#15651 (comment)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/910)
<!-- Reviewable:end -->
@jonathandturner
Copy link
Author

@jonathandturner jonathandturner commented Feb 26, 2017

Fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants
You can’t perform that action at this time.