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

Panic instantiating a font #12081

Closed
jdm opened this issue Jul 1, 2016 · 1 comment
Closed

Panic instantiating a font #12081

jdm opened this issue Jul 1, 2016 · 1 comment
Assignees

Comments

@jdm
Copy link
Member

@jdm jdm commented Jul 1, 2016

./mach run -w -d --debug https://www.computest.nl/blog/startencrypt-considered-harmful-today/

thread 'FontCacheThread' panicked at 'assertion failed: `(left == right)` (left: `112164`, right: `46628`)', /Users/jdm/src/servo/components/gfx/platform/macos/font.rs:120
(lldb) bt
error: need to add support for DW_TAG_base_type '()' encoded with DW_ATE = 0x7, bit_size = 0
* thread #23: tid = 0x20b7c9, 0x00000001048eda90 servo`rust_panic, name = 'FontCacheThread', stop reason = breakpoint 1.1
  * frame #0: 0x00000001048eda90 servo`rust_panic
    frame #1: 0x00000001048e362d servo`std::panicking::rust_panic_with_hook::h983af77c1a2e581b + 413
    frame #2: 0x00000001048fc6d7 servo`std::panicking::begin_panic::he426e15a3766089a + 103
    frame #3: 0x00000001048e4c29 servo`std::panicking::begin_panic_fmt::hdddb415186c241e7 + 169
    frame #4: 0x0000000102b80ae6 servo`gfx::platform::macos::font::{{impl}}::find_h_kern_subtable(self=0x000000011e7ffc38) + 3046 at <std macros>:8
    frame #5: 0x0000000102b44d12 servo`gfx::platform::macos::font::{{impl}}::new_from_template(_fctx=0x000000011e8007d8, template=Arc<gfx::platform::macos::font_template::FontTemplateData> at 0x000000011e7ffcf8, pt_size=Option<app_units::app_unit::Au> at 0x000000011e7ffce8) + 562 at font.rs:185
    frame #6: 0x0000000102b50581 servo`gfx::font_template::{{impl}}::instantiate(self=0x000000011ec6c000, font_context=0x000000011e8007d8) + 145 at font_template.rs:168
    frame #7: 0x0000000102ac8de6 servo`gfx::font_template::{{impl}}::data_for_descriptor(self=0x000000011ec6c000, fctx=0x000000011e8007d8, requested_desc=0x000000011e800578) + 182 at font_template.rs:123
    frame #8: 0x0000000102ac853b servo`gfx::font_cache_thread::{{impl}}::find_font_for_style(self=0x000000011ec15538, desc=0x000000011e800578, fctx=0x000000011e8007d8) + 331 at font_cache_thread.rs:56
    frame #9: 0x0000000102b2c1d2 servo`gfx::font_cache_thread::{{impl}}::find_font_in_web_family(self=0x000000011e800750, family=0x000000011e800638, desc=0x000000011e800578) + 258 at font_cache_thread.rs:327
    frame #10: 0x0000000102aef38f servo`gfx::font_cache_thread::{{impl}}::find_font_template(self=0x000000011e800750, family=0x000000011e800638, desc=0x000000011e800578) + 63 at font_cache_thread.rs:353
    frame #11: 0x0000000102ad1a15 servo`gfx::font_cache_thread::{{impl}}::run(self=0x000000011e800750) + 309 at font_cache_thread.rs:167
    frame #12: 0x0000000102b35785 servo`gfx::font_cache_thread::{{impl}}::new::{{closure}} + 709 at font_cache_thread.rs:410
    frame #13: 0x0000000102b35478 servo`std::panic::{{impl}}::call_once<(self=AssertUnwindSafe<closure> at 0x000000011e8008d8, _args=<unavailable>),closure> + 168 at panic.rs:251
    frame #14: 0x0000000102b353b6 servo`std::panicking::try::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hba6876ddabbbc7a6 + 86
    frame #15: 0x0000000102b35d65 servo`std::panicking::try::call<closure>(f=0x000000011e800a98) + 21 at panicking.rs:272
    frame #16: 0x00000001048ff3bc servo`__rust_try + 12
    frame #17: 0x00000001048ff356 servo`__rust_maybe_catch_panic + 38
    frame #18: 0x0000000102b350ae servo`std::panicking::try::_$u7b$$u7b$closure$u7d$$u7d$::hdaa55c6034c35e44 + 158
    frame #19: 0x0000000102b34f90 servo`std::thread::local::{{impl}}::with<core::cell::Cell<usize>,closure,core::result::Result<(self=0x00000001060fa6a0, f=closure at 0x000000011e800b38), Box<Any>>> + 208 at local.rs:211
    frame #20: 0x0000000102b34dc8 servo`std::panicking::try<(f=AssertUnwindSafe<closure> at 0x000000011e800c08),std::panic::AssertUnwindSafe<closure>> + 248 at panicking.rs:235
    frame #21: 0x0000000102b34c82 servo`std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,(f=AssertUnwindSafe<closure> at 0x000000011e800ca8)> + 178 at panic.rs:307
    frame #22: 0x0000000102b34ac7 servo`std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h8ba1a69ff341fbec + 391
    frame #23: 0x0000000102b36101 servo`alloc::boxed::{{impl}}::call_box<(self=0x000000010ce17dc0, args=<unavailable>),closure> + 97 at boxed.rs:544
    frame #24: 0x00000001048fae39 servo`std::sys::thread::Thread::new::thread_start::h9c883b6d445ece46 + 57
    frame #25: 0x00007fff8fd62899 libsystem_pthread.dylib`_pthread_body + 138
    frame #26: 0x00007fff8fd6272a libsystem_pthread.dylib`_pthread_start + 137
    frame #27: 0x00007fff8fd66fc9 libsystem_pthread.dylib`thread_start + 13
@jdm
Copy link
Member Author

@jdm jdm commented Jul 2, 2016

@mbrubeck The assertion here was added as part of the fast path in #11273.

@mbrubeck mbrubeck self-assigned this Jul 2, 2016
mbrubeck added a commit to mbrubeck/servo that referenced this issue Jul 6, 2016
bors-servo added a commit that referenced this issue Jul 7, 2016
Bail out gracefully on malformed kern table headers.

This changes a debug assert to a debug log and early return.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #12081 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because I'm just removing an assertion

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12291)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 7, 2016
Bail out gracefully on malformed kern table headers.

This changes a debug assert to a debug log and early return.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #12081 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because I'm just removing an assertion

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12291)
<!-- Reviewable:end -->
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.

2 participants
You can’t perform that action at this time.