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 on wikipedia page #26444

Closed
jdm opened this issue May 6, 2020 · 0 comments
Closed

Panic on wikipedia page #26444

jdm opened this issue May 6, 2020 · 0 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented May 6, 2020

Loading https://en.wikipedia.org/wiki/Section_20A in layout-2020 panics:

called `Option::unwrap()` on a `None` value (thread StyleThread#1, at /Users/joshmatthews/src/servo-tmp/components/layout_2020/dom_traversal.rs:451)
   0: backtrace::backtrace::trace_unsynchronized
   1: <servo::backtrace::Print as core::fmt::Debug>::fmt
   2: core::fmt::write
   3: std::io::Write::write_fmt
   4: servo::backtrace::print
   5: servo::main::{{closure}}
   6: std::panicking::rust_panic_with_hook
   7: rust_begin_unwind
   8: core::panicking::panic_fmt
   9: core::panicking::panic
  10: core::option::Option<T>::unwrap
  11: <T as layout::dom_traversal::NodeExt>::layout_data_mut
  12: <T as layout::dom_traversal::NodeExt>::unset_boxes_in_subtree
  13: layout::dom_traversal::traverse_element
  14: layout::dom_traversal::traverse_children_of
  15: layout::dom_traversal::NonReplacedContents::traverse
  16: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  17: layout::flow::construct::IntermediateBlockContainer::finish
  18: layout::flow::construct::BlockLevelJob<Node>::finish
  19: layout::flow::construct::<impl layout::flow::BlockContainer>::construct::{{closure}}
  20: <rayon_croissant::consumer::MapfoldReduceFolder<Accumulator,Mapfold,OutputConsumer> as rayon::iter::plumbing::Folder<Input>>::consume
  21: rayon::iter::plumbing::Folder::consume_iter
  22: rayon::iter::plumbing::Producer::fold_with
  23: rayon::iter::plumbing::bridge_producer_consumer::helper
  24: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
  25: rayon_core::join::join_context::call_b::{{closure}}
  26: rayon_core::job::StackJob<L,F,R>::run_inline
  27: rayon_core::join::join_context::{{closure}}
  28: rayon_core::registry::in_worker
  29: rayon_core::join::join_context
  30: rayon::iter::plumbing::bridge_producer_consumer::helper
  31: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
  32: rayon_core::join::join_context::call_b::{{closure}}
  33: rayon_core::job::StackJob<L,F,R>::run_inline
  34: rayon_core::join::join_context::{{closure}}
  35: rayon_core::registry::in_worker
  36: rayon_core::join::join_context
  37: rayon::iter::plumbing::bridge_producer_consumer::helper
  38: rayon::iter::plumbing::bridge_producer_consumer
  39: <rayon::iter::plumbing::bridge::Callback<C> as rayon::iter::plumbing::ProducerCallback<I>>::callback
  40: <rayon::vec::IntoIter<T> as rayon::iter::IndexedParallelIterator>::with_producer
  41: rayon::iter::plumbing::bridge
  42: <rayon::vec::IntoIter<T> as rayon::iter::ParallelIterator>::drive_unindexed
  43: <rayon_croissant::MapfoldReduce<Accumulator,Input,Mapfold,Init,Reduce> as rayon::iter::ParallelIterator>::drive_unindexed
  44: rayon::iter::collect::special_extend
  45: rayon::iter::collect::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
  46: rayon::iter::from_par_iter::collect_extended
  47: rayon::iter::from_par_iter::<impl rayon::iter::FromParallelIterator<T> for alloc::vec::Vec<T>>::from_par_iter
  48: rayon::iter::ParallelIterator::collect
  49: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  50: layout::flow::construct::IntermediateBlockContainer::finish
  51: layout::flow::construct::BlockLevelJob<Node>::finish
  52: layout::flow::construct::<impl layout::flow::BlockContainer>::construct::{{closure}}
  53: <rayon_croissant::consumer::MapfoldReduceFolder<Accumulator,Mapfold,OutputConsumer> as rayon::iter::plumbing::Folder<Input>>::consume
  54: rayon::iter::plumbing::Folder::consume_iter
  55: rayon::iter::plumbing::Producer::fold_with
  56: rayon::iter::plumbing::bridge_producer_consumer::helper
  57: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
  58: rayon_core::join::join_context::call_b::{{closure}}
  59: rayon_core::job::StackJob<L,F,R>::run_inline
  60: rayon_core::join::join_context::{{closure}}
  61: rayon_core::registry::in_worker
  62: rayon_core::join::join_context
  63: rayon::iter::plumbing::bridge_producer_consumer::helper
  64: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
  65: rayon_core::join::join_context::call_a::{{closure}}
  66: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  67: std::panicking::try::do_call
  68: __rust_try
  69: std::panicking::try
  70: std::panic::catch_unwind
  71: rayon_core::unwind::halt_unwinding
  72: rayon_core::join::join_context::{{closure}}
  73: rayon_core::registry::in_worker
  74: rayon_core::join::join_context
  75: rayon::iter::plumbing::bridge_producer_consumer::helper
  76: rayon::iter::plumbing::bridge_producer_consumer
  77: <rayon::iter::plumbing::bridge::Callback<C> as rayon::iter::plumbing::ProducerCallback<I>>::callback
  78: <rayon::vec::IntoIter<T> as rayon::iter::IndexedParallelIterator>::with_producer
  79: rayon::iter::plumbing::bridge
  80: <rayon::vec::IntoIter<T> as rayon::iter::ParallelIterator>::drive_unindexed
  81: <rayon_croissant::MapfoldReduce<Accumulator,Input,Mapfold,Init,Reduce> as rayon::iter::ParallelIterator>::drive_unindexed
  82: rayon::iter::collect::special_extend
  83: rayon::iter::collect::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
  84: rayon::iter::from_par_iter::collect_extended
  85: rayon::iter::from_par_iter::<impl rayon::iter::FromParallelIterator<T> for alloc::vec::Vec<T>>::from_par_iter
  86: rayon::iter::ParallelIterator::collect
  87: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  88: layout::flow::construct::IntermediateBlockContainer::finish
  89: layout::flow::construct::BlockLevelJob<Node>::finish
  90: layout::flow::construct::<impl layout::flow::BlockContainer>::construct::{{closure}}
  91: <rayon_croissant::consumer::MapfoldReduceFolder<Accumulator,Mapfold,OutputConsumer> as rayon::iter::plumbing::Folder<Input>>::consume
  92: rayon::iter::plumbing::Folder::consume_iter
  93: rayon::iter::plumbing::Producer::fold_with
  94: rayon::iter::plumbing::bridge_producer_consumer::helper
  95: rayon::iter::plumbing::bridge_producer_consumer
  96: <rayon::iter::plumbing::bridge::Callback<C> as rayon::iter::plumbing::ProducerCallback<I>>::callback
  97: <rayon::vec::IntoIter<T> as rayon::iter::IndexedParallelIterator>::with_producer
  98: rayon::iter::plumbing::bridge
  99: <rayon::vec::IntoIter<T> as rayon::iter::ParallelIterator>::drive_unindexed
 100: <rayon_croissant::MapfoldReduce<Accumulator,Input,Mapfold,Init,Reduce> as rayon::iter::ParallelIterator>::drive_unindexed
 101: rayon::iter::collect::special_extend
 102: rayon::iter::collect::<impl rayon::iter::ParallelExtend<T> for alloc::vec::Vec<T>>::par_extend
 103: rayon::iter::from_par_iter::collect_extended
 104: rayon::iter::from_par_iter::<impl rayon::iter::FromParallelIterator<T> for alloc::vec::Vec<T>>::from_par_iter
 105: rayon::iter::ParallelIterator::collect
 106: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
 107: layout::flow::construct::<impl layout::flow::BlockFormattingContext>::construct
 108: layout::formatting_contexts::IndependentFormattingContext::construct
 109: layout::flow::root::construct_for_root_element
 110: layout::flow::root::BoxTreeRoot::construct
 111: layout_thread::LayoutThread::handle_reflow::{{closure}}
 112: core::ops::function::FnOnce::call_once
 113: rayon_core::thread_pool::ThreadPool::install::{{closure}}
 114: rayon_core::registry::Registry::in_worker_cold::{{closure}}::{{closure}}
 115: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::call::{{closure}}
 116: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
 117: std::panicking::try::do_call
 118: __rust_try
 119: std::panicking::try
 120: std::panic::catch_unwind
 121: rayon_core::unwind::halt_unwinding
 122: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute
 123: rayon_core::job::JobRef::execute
 124: rayon_core::registry::WorkerThread::execute
 125: rayon_core::registry::WorkerThread::wait_until_cold
 126: rayon_core::registry::WorkerThread::wait_until
 127: rayon_core::registry::main_loop
 128: rayon_core::registry::ThreadBuilder::run
 129: <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn::{{closure}}
 130: std::sys_common::backtrace::__rust_begin_short_backtrace
 131: std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}
 132: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
 133: std::panicking::try::do_call
 134: __rust_try
 135: std::panicking::try
 136: std::panic::catch_unwind
 137: std::thread::Builder::spawn_unchecked::{{closure}}
 138: core::ops::function::FnOnce::call_once{{vtable.shim}}
 139: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
 140: std::sys::unix::thread::Thread::new::thread_start
 141: _pthread_start

This looks the immediate panic would be fixed by a commit in #26414.

bors-servo added a commit that referenced this issue May 7, 2020
Correctly paint the CSS canvas’ background

https://drafts.csswg.org/css-backgrounds/#special-backgrounds

Fixes #25559
Closes #26121, as it is an alternative.
Fixes #26444.
bors-servo added a commit that referenced this issue May 15, 2020
Correctly paint the CSS canvas’ background

https://drafts.csswg.org/css-backgrounds/#special-backgrounds

Fixes #25559
Closes #26121, as it is an alternative.
Fixes #26444.
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.

1 participant
You can’t perform that action at this time.