Skip to content

panic: out of bounds. Row must be less than 1, but is 1 via taffy::compute::grid::compute_grid_layout #36810

@fred-wang

Description

@fred-wang

Minimal testcase:

<!DOCTYPE html>
<style>
  #outer {
    display: grid;
    grid-template: 0/0;
  }
  #inner {
    grid-row: -1/span l;
  }
</style>
<div id="outer">
  <div id="inner">
  </div>

System: Linux
Version: Servo 0.0.1-46f59e329
Command: ./servo/servo --enable-experimental-web-platform-features

out of bounds. Row must be less than 1, but is 1 (thread Script(1,1), at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/grid-0.15.0/src/lib.rs:754)
   0: servoshell::backtrace::print
   1: servoshell::panic_hook::panic_hook
   2: std::panicking::rust_panic_with_hook
   3: std::panicking::begin_panic_handler::{{closure}}
   4: std::sys::backtrace::__rust_end_short_backtrace
   5: rust_begin_unwind
   6: core::panicking::panic_fmt
   7: grid::Grid<T>::iter_row
   8: taffy::compute::grid::compute_grid_layout
   9: layout::formatting_contexts::IndependentNonReplacedContents::layout_without_caching
  10: layout::formatting_contexts::IndependentNonReplacedContents::layout
  11: layout::flow::<impl layout::formatting_contexts::IndependentFormattingContext>::layout_in_flow_block_level
  12: layout::flow::BlockLevelBox::layout
  13: rayon::iter::plumbing::bridge_producer_consumer::helper
  14: layout::flow::BlockContainer::layout
  15: layout::flow::BlockLevelBox::layout::{{closure}}
  16: layout::flow::BlockLevelBox::layout
  17: rayon::iter::plumbing::bridge_producer_consumer::helper
  18: layout::flow::BlockContainer::layout
  19: layout::flow::BlockFormattingContext::layout
  20: layout::formatting_contexts::IndependentNonReplacedContents::layout
  21: layout::flow::<impl layout::formatting_contexts::IndependentFormattingContext>::layout_in_flow_block_level
  22: layout::flow::BlockLevelBox::layout
  23: rayon::iter::plumbing::bridge_producer_consumer::helper
  24: layout::flow::BlockContainer::layout
  25: layout::flow::BlockFormattingContext::layout
  26: layout::flow::root::BoxTree::layout
  27: profile_traits::time::profile
  28: <layout::layout_impl::LayoutThread as script_layout_interface::Layout>::reflow
  29: script::dom::window::Window::reflow
  30: script::dom::window::Window::allow_layout_if_necessary
  31: script::dom::document::Document::finish_load
  32: script::dom::servoparser::ServoParser::parse_sync
  33: <script::dom::servoparser::ParserContext as net_traits::FetchResponseListener>::process_response_eof
  34: script::script_thread::ScriptThread::handle_msg_from_script
  35: script::script_thread::ScriptThread::handle_msgs::{{closure}}
  36: script::script_thread::ScriptThread::handle_msgs
  37: std::sys::backtrace::__rust_begin_short_backtrace
  38: core::ops::function::FnOnce::call_once{{vtable.shim}}
  39: std::sys::pal::unix::thread::Thread::new::thread_start
  40: start_thread
             at ./nptl/pthread_create.c:447:8
  41: clone3
             at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78:0

cc @nicoburns

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