Skip to content

Fail to get font handle in canvas fill_text #27476

@CYBAI

Description

@CYBAI

While trying to access this page from a Taiwanese magazine publisher for showing some data with D3, I can't see the page rendered correctly and will see following panic message.

Open to see full backtrace
→ ./mach run https://web.cw.com.tw/corporate-political-money-2020/index.html
[2020-08-01T10:32:52Z ERROR canvas::canvas_data] error getting font handle for style Font { font_family: FontFamily { families: FontFamilyList([FamilyName(FamilyName { name: Atom('Noto Sans TC' type=dynamic), syntax: Quoted })]), is_system_font: false }, font_style: Normal, font_variant_caps: Normal, font_weight: FontWeight(400.0), font_size: FontSize { size: NonNegative(20.0 px), keyword_info: KeywordInfo { kw: None, factor: 1.0, offset: 0.0 px } }, font_stretch: FontStretch(NonNegative(Percentage(1.0))), hash: 930802703126591095 }: no font found
called `Option::unwrap()` on a `None` value (thread CanvasThread, at /Users/cybai/.cargo/git/checkouts/raqote-9e18d1f68843f9af/ff5d2d1/src/draw_target.rs:755)
   0: backtrace::backtrace::libunwind::trace
             at /Users/cybai/.cargo/git/checkouts/backtrace-rs-fb8cc3ab7e3059b0/5366f72/src/backtrace/libunwind.rs:96
      backtrace::backtrace::trace_unsynchronized
             at /Users/cybai/.cargo/git/checkouts/backtrace-rs-fb8cc3ab7e3059b0/5366f72/src/backtrace/mod.rs:66
   1: <servo::backtrace::Print as core::fmt::Debug>::fmt
             at /Volumes/Transcend/codespace/mozilla/servo/ports/winit/backtrace.rs:49
   2: core::fmt::write
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libcore/fmt/mod.rs:1117
   3: std::io::Write::write_fmt
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/io/mod.rs:1508
   4: servo::backtrace::print
             at /Volumes/Transcend/codespace/mozilla/servo/ports/winit/backtrace.rs:17
   5: servo::main::{{closure}}
             at /Volumes/Transcend/codespace/mozilla/servo/ports/winit/main2.rs:166
   6: std::panicking::rust_panic_with_hook
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panicking.rs:530
   7: rust_begin_unwind
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panicking.rs:437
   8: core::panicking::panic_fmt
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libcore/panicking.rs:85
   9: core::panicking::panic
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libcore/panicking.rs:50
  10: core::option::Option<T>::unwrap
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libcore/macros/mod.rs:10
  11: raqote::draw_target::DrawTarget::draw_text
             at /Users/cybai/.cargo/git/checkouts/raqote-9e18d1f68843f9af/ff5d2d1/src/draw_target.rs:755
  12: canvas::raqote_backend::<impl canvas::canvas_data::GenericDrawTarget for raqote::draw_target::DrawTarget>::fill_text
             at /Volumes/Transcend/codespace/mozilla/servo/components/canvas/raqote_backend.rs:530
  13: canvas::canvas_data::CanvasData::fill_text
             at /Volumes/Transcend/codespace/mozilla/servo/components/canvas/canvas_data.rs:570
  14: canvas::canvas_paint_thread::CanvasPaintThread::process_canvas_2d_message
             at /Volumes/Transcend/codespace/mozilla/servo/components/canvas/canvas_paint_thread.rs:148
  15: canvas::canvas_paint_thread::CanvasPaintThread::start::{{closure}}
             at /Volumes/Transcend/codespace/mozilla/servo/components/canvas/canvas_paint_thread.rs:73
  16: std::sys_common::backtrace::__rust_begin_short_backtrace
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/sys_common/backtrace.rs:130
  17: std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/thread/mod.rs:475
  18: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panic.rs:318
  19: std::panicking::try::do_call
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panicking.rs:348
  20: ___rust_try
  21: std::panicking::try
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panicking.rs:325
  22: std::panic::catch_unwind
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/panic.rs:394
  23: std::thread::Builder::spawn_unchecked::{{closure}}
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/thread/mod.rs:474
  24: core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libcore/ops/function.rs:233
  25: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/liballoc/boxed.rs:1074
      <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/liballoc/boxed.rs:1074
      std::sys::unix::thread::Thread::new::thread_start
             at /rustc/6c8927b0cf80ceee19386026cf9d7fd4fd9d486f/src/libstd/sys/unix/thread.rs:87
  26: __pthread_body
  27: __pthread_start
[2020-08-01T10:34:15Z ERROR servo] called `Option::unwrap()` on a `None` value
Firefox Servo
image image

Built with latest main branch (6499367) on macOS 10.14.6

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions