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

Intermittent timeout in /css21_dev/html4/border-left-applies-to-012.htm and /referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html (panic in FontCacheThread::get_font_instance) #19033

Open
jdm opened this issue Oct 27, 2017 · 2 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Oct 27, 2017

  ▶ TIMEOUT [expected PASS] /css21_dev/html4/border-left-applies-to-012.htm
  │ 
  │ VMware, Inc.
  │ softpipe
  │ 3.3 (Core Profile) Mesa 17.3.0-devel
  │ failed to receive response to font request: Io(Error { repr: Os { code: 104, message: "Connection reset by peer" } }) (thread LayoutThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(NonZero(1))) }, at /checkout/src/libcore/result.rs:906)
  │ stack backtrace:
  │    0:     0x7fe93b2dd2cc - backtrace::backtrace::trace::h3049d3b23f5565ad
  │    1:     0x7fe93b2dd302 - backtrace::capture::Backtrace::new::h48230b597774155d
  │    2:     0x7fe93a1132e5 - servo::main::{{closure}}::h56bd67e7de3b8245
  │    3:     0x7fe93c48a196 - std::panicking::rust_panic_with_hook
  │                         at /checkout/src/libstd/panicking.rs:578
  │    4:     0x7fe93c48a024 - std::panicking::begin_panic<alloc::string::String>
  │                         at /checkout/src/libstd/panicking.rs:538
  │    5:     0x7fe93c489f29 - std::panicking::begin_panic_fmt
  │                         at /checkout/src/libstd/panicking.rs:522
  │    6:     0x7fe93c489eba - std::panicking::rust_begin_panic
  │                         at /checkout/src/libstd/panicking.rs:498
  │    7:     0x7fe93c4997b0 - core::panicking::panic_fmt
  │                         at /checkout/src/libcore/panicking.rs:71
  │    8:     0x7fe93b6bf771 - core::result::unwrap_failed::h6e890c3e80e1df3f
  │    9:     0x7fe93b6d85fd - gfx::font_cache_thread::FontCacheThread::get_font_instance::h21d39ca48940c8ac
  │   10:     0x7fe93b6d8f67 - gfx::font_context::FontContext::create_layout_font::h0c91b511177d6ad6
  │   11:     0x7fe93b6d97b8 - gfx::font_context::FontContext::layout_font_group_for_style::h23103247c7eb49d2
  │   12:     0x7fe93a53d411 - layout::text::TextRunScanner::scan_for_runs::hd778676c6e422b92
  │   13:     0x7fe93a4516e2 - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode>>::build_flow_for_block_starting_with_fragments::h0e4eecaa31f2e0fa
  │   14:     0x7fe93a4501c4 - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode>>::build_flow_for_block_like::hfa047d4cfdcc4f27
  │   15:     0x7fe93a44f7bd - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode>>::build_flow_for_block::h5dbbd690367eca8c
  │   16:     0x7fe93a3c6b02 - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode> as layout::traversal::PostorderNodeMutTraversal<ConcreteThreadSafeLayoutNode>>::process::hb68738cf76e60a09
  │   17:     0x7fe93a426d31 - style::traversal::DomTraversal::handle_postorder_traversal::h4e7a67f49f911525
  │   18:     0x7fe93a48cff5 - layout_thread::LayoutThread::handle_reflow::ha5b68ae18da89834
  │   19:     0x7fe93a47d270 - layout_thread::LayoutThread::handle_request_helper::hef20e9fe132e2b97
  │   20:     0x7fe93a478b90 - <layout_thread::LayoutThread as layout_traits::LayoutThreadFactory>::create::{{closure}}::hc3fa2ba307caca8a
  │   21:     0x7fe93a3db3f5 - std::sys_common::backtrace::__rust_begin_short_backtrace::h93b0014a8f30f78e
  │   22:     0x7fe93a3e0375 - std::panicking::try::do_call::h5279d24fdcb663c5
  │   23:     0x7fe93c4912dc - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:99
  │   24:     0x7fe93a413092 - <F as alloc::boxed::FnBox<A>>::call_box::hec997d9b454dd6f3
  │   25:     0x7fe93c488eab - alloc::boxed::{{impl}}::call_once<(),()>
  │                         at /checkout/src/liballoc/boxed.rs:772
  │                          - std::sys_common::thread::start_thread
  │                         at /checkout/src/libstd/sys_common/thread.rs:24
  │                          - std::sys::imp::thread::{{impl}}::new::thread_start
  │                         at /checkout/src/libstd/sys/unix/thread.rs:90
  │   26:     0x7fe9381db183 - start_thread
  │   27:     0x7fe9378e5ffc - clone
  │   28:                0x0 - <unknown>
  │ ERROR:servo: failed to receive response to font request: Io(Error { repr: Os { code: 104, message: "Connection reset by peer" } })
  │ assertion failed: !self.Document().needs_reflow() ||
  │     (!for_display && self.Document().needs_paint()) ||
  │     self.window_size.get().is_none() || self.suppress_reflow.get() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(NonZero(1))) }, at /home/servo/buildbot/slave/linux-rel-css/build/components/script/dom/window.rs:1329)
  │ stack backtrace:
  │    0:     0x7fe93b2dd2cc - backtrace::backtrace::trace::h3049d3b23f5565ad
  │    1:     0x7fe93b2dd302 - backtrace::capture::Backtrace::new::h48230b597774155d
  │    2:     0x7fe93a1132e5 - servo::main::{{closure}}::h56bd67e7de3b8245
  │    3:     0x7fe93c48a196 - std::panicking::rust_panic_with_hook
  │                         at /checkout/src/libstd/panicking.rs:578
  │    4:     0x7fe93a617d6a - std::panicking::begin_panic::h43bb9a8708c4756b
  │    5:     0x7fe93adab677 - script::dom::window::Window::reflow::h69f04f5700930dc4
  │    6:     0x7fe93abc0737 - script::dom::document::Document::finish_load::h982c2f0e07730443
  │    7:     0x7fe93ad1a711 - script::dom::servoparser::ServoParser::do_parse_sync::h79fb973507b6b716
  │    8:     0x7fe93ad19ea6 - script::dom::servoparser::ServoParser::parse_sync::h515a34fa9361a048
  │    9:     0x7fe93ad1ed0b - <script::dom::servoparser::ParserContext as net_traits::FetchResponseListener>::process_response_eof::ha8bbe87528059937
  │   10:     0x7fe93ae01beb - script::script_thread::ScriptThread::handle_msg_from_constellation::h1d79dd554db1374c
  │   11:     0x7fe93adfbb9f - script::script_thread::ScriptThread::handle_msgs::{{closure}}::hb6feafa9f4657a26
  │   12:     0x7fe93adf6e04 - script::script_thread::ScriptThread::handle_msgs::he4ea694ff271836b
  │   13:     0x7fe93adf128b - script::script_thread::ScriptThread::start::h408b35f8f36475ba
  │   14:     0x7fe93a616162 - std::sys_common::backtrace::__rust_begin_short_backtrace::he5c0ff541073bde6
  │   15:     0x7fe93a7cf647 - std::panicking::try::do_call::hc709de172a33c040
  │   16:     0x7fe93c4912dc - panic_unwind::__rust_maybe_catch_panic
  │                         at /checkout/src/libpanic_unwind/lib.rs:99
  │   17:     0x7fe93a970292 - <F as alloc::boxed::FnBox<A>>::call_box::ha9b1cf18b639c0ae
  │   18:     0x7fe93c488eab - alloc::boxed::{{impl}}::call_once<(),()>
  │                         at /checkout/src/liballoc/boxed.rs:772
  │                          - std::sys_common::thread::start_thread
  │                         at /checkout/src/libstd/sys_common/thread.rs:24
  │                          - std::sys::imp::thread::{{impl}}::new::thread_start
  │                         at /checkout/src/libstd/sys/unix/thread.rs:90
  │   19:     0x7fe9381db183 - start_thread
  │   20:     0x7fe9378e5ffc - clone
  │   21:                0x0 - <unknown>
  │ ERROR:servo: assertion failed: !self.Document().needs_reflow() ||
  │     (!for_display && self.Document().needs_paint()) ||
  └     self.window_size.get().is_none() || self.suppress_reflow.get()
@jdm
Copy link
Member Author

@jdm jdm commented Jan 9, 2018

I suspect this occurs during shutdown when there is a layout in process. The pipeline is closed, but the constellation does not wait for any notification that the close message has been received, and goes ahead and closes the font cache thread. When the ongoing layout tries to communicate with the font cache thread, we panic.

@jdm
Copy link
Member Author

@jdm jdm commented Jan 9, 2018

The other possibility is that this is yet another instance of the underlying problem behind #13480.

@jdm jdm changed the title Intermittent timeout in /css21_dev/html4/border-left-applies-to-012.htm Intermittent timeout in /css21_dev/html4/border-left-applies-to-012.htm and /referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html Jan 23, 2018
@jdm jdm changed the title Intermittent timeout in /css21_dev/html4/border-left-applies-to-012.htm and /referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html Intermittent timeout in /css21_dev/html4/border-left-applies-to-012.htm and /referrer-policy/origin/meta-referrer/same-origin/http-https/iframe-tag/generic.swap-origin-redirect.http.html (panic in FontCacheThread::get_font_instance) Jan 23, 2018
@jdm jdm mentioned this issue Jan 23, 2018
0 of 5 tasks complete
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
1 participant
You can’t perform that action at this time.