Skip to content

panic: already immutably borrowed (atomic_refcell-0.1.13/src/lib.rs:155) #41231

@fred-wang

Description

@fred-wang

This is very flaky, I'm relying on https://github.com/fred-wang/servo-fuzzing/blob/main/repeat.sh (with a 20 count) to reproduce. The panic message and location is similar (but slightly different) to #41183.

Minimal testcase:

<!DOCTYPE html>
<style>
  #container, details { display: list-item; }
  details { list-style: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjIyt5EXfQAAAU5JREFUeF7t07ENACAMxMDA/jsDBTtcY6TUlmx+zcx510MGNuKG/QYKgL9CAQqADWB8CygANoDxLaAA2ADGt4ACYAMY3wIKgA1gfAsoADaA8S2gANgAxreAAmADGN8CCoANYHwLKAA2gPEtoADYAMa3gAJgAxjfAgqADWB8CygANoDxLaAA2ADGt4ACYAMY3wIKgA1gfAsoADaA8S2gANgAxreAAmADGN8CCoANYHwLKAA2gPEtoADYAMa3gAJgAxjfAgqADWB8CygANoDxLaAA2ADGt4ACYAMY3wIKgA1gfAsoADaA8S2gANgAxreAAmADGN8CCoANYHwLKAA2gPEtoADYAMa3gAJgAxjfAgqADWB8CygANoDxLaAA2ADGt4ACYAMY3wIKgA1gfAsoADaA8S2gANgAxreAAmADGN8CCoANYHwLKAA2gPEtAAe4i54BvwLfXFAAAAAASUVORK5CYII=); }
</style>
<div id="container">}&#xA;<details></details></div>

System: Linux
Version: Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725 Version: Servo 0.0.3-c62fbe725
Command: ./repeat.sh ./servo/servo

already immutably borrowed (thread Script#1, at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/atomic_refcell-0.1.13/src/lib.rs:155)
   0: servoshell::backtrace::print
   1: servoshell::panic_hook::panic_hook
   2: std::panicking::panic_with_hook
   3: std::panicking::panic_handler::{{closure}}
   4: std::sys::backtrace::__rust_end_short_backtrace
   5: __rustc::rust_begin_unwind
   6: core::panicking::panic_fmt
   7: core::panicking::panic_display
   8: <script::layout_dom::node::ServoThreadSafeLayoutNode as layout::dom::NodeExt>::take_restyle_damage
   9: layout::dom_traversal::traverse_children_of
  10: layout::dom_traversal::traverse_children_of
  11: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  12: layout::formatting_contexts::IndependentFormattingContext::construct
  13: layout::flow::construct::BlockContainerBuilder::handle_inline_level_element
  14: layout::dom_traversal::traverse_pseudo_element_contents
  15: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  16: layout::flow::construct::BlockLevelJob::finish
  17: rayon::iter::plumbing::bridge_producer_consumer::helper
  18: rayon_core::join::join_context::{{closure}}
  19: rayon::iter::plumbing::bridge_producer_consumer::helper
  20: layout::flow::construct::BlockContainerBuilder::finish
  21: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  22: layout::flow::construct::BlockLevelJob::finish
  23: rayon::iter::plumbing::bridge_producer_consumer::helper
  24: <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute
  25: rayon_core::registry::WorkerThread::wait_until_cold
  26: rayon_core::join::join_context::{{closure}}
  27: rayon::iter::plumbing::bridge_producer_consumer::helper
  28: layout::flow::construct::BlockContainerBuilder::finish
  29: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  30: layout::flow::construct::BlockLevelJob::finish
  31: rayon::iter::plumbing::bridge_producer_consumer::helper
  32: layout::flow::construct::BlockContainerBuilder::finish
  33: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  34: layout::flow::construct::BlockLevelJob::finish
  35: rayon::iter::plumbing::bridge_producer_consumer::helper
  36: layout::flow::construct::BlockContainerBuilder::finish
  37: layout::flow::construct::<impl layout::flow::BlockContainer>::construct
  38: layout::formatting_contexts::IndependentFormattingContext::construct
  39: layout::layout_impl::LayoutThread::restyle_and_build_trees::{{closure}}
  40: layout::layout_impl::LayoutThread::handle_reflow
  41: <layout::layout_impl::LayoutThread as layout_api::Layout>::reflow
  42: script::dom::window::Window::reflow
  43: script::dom::document::Document::update_the_rendering
  44: script::script_thread::ScriptThread::update_the_rendering
  45: script::script_thread::ScriptThread::handle_msgs
  46: std::sys::backtrace::__rust_begin_short_backtrace
  47: core::ops::function::FnOnce::call_once{{vtable.shim}}
  48: std::sys::thread::unix::Thread::new::thread_start
  49: start_thread
             at ./nptl/pthread_create.c:447:8
  50: clone3
             at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78:0
./repeat.sh : ligne 4 : 539866 Erreur de segmentation  (core dumped) $@

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