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

window.gc(): DomRefCell<T> already borrowed: BorrowError #20090

Open
mateon1 opened this issue Feb 20, 2018 · 4 comments
Open

window.gc(): DomRefCell<T> already borrowed: BorrowError #20090

mateon1 opened this issue Feb 20, 2018 · 4 comments
Assignees

Comments

@mateon1
Copy link
Contributor

@mateon1 mateon1 commented Feb 20, 2018

Found by accident while using domato.

This is a relatively recent breakage, window.gc() used to work just fine a few months ago.

<script>window.gc()</script>
VMware, Inc.
softpipe
3.3 (Core Profile) Mesa 17.3.0-devel
DomRefCell<T> already mutably borrowed: BorrowError (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(NonZero(1))) }, at libcore/result.rs:916)
stack backtrace:
   0:     0x55555bd1cce4 - backtrace::backtrace::libunwind::trace::h79984cabe80721dc
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
                         - backtrace::backtrace::trace::h10c59b076f73358b
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55555bd1446c - backtrace::capture::Backtrace::new::haef9cefb7535bc7c
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55555597b316 - servo::main::{{closure}}::h3cd5e9106607e7fe
                        at ports/servo/main.rs:146
   3:     0x55555bd30125 - std::panicking::rust_panic_with_hook::haa00f5a9417cd684
                        at libstd/panicking.rs:577
   4:     0x55555bd2ffae - std::panicking::begin_panic::ha956683198499384
                        at libstd/panicking.rs:537
   5:     0x55555bd2feaa - std::panicking::begin_panic_fmt::h587e116719f14631
                        at libstd/panicking.rs:521
   6:     0x55555bd2fe42 - rust_begin_unwind
                        at libstd/panicking.rs:497
   7:     0x55555bd64630 - core::panicking::panic_fmt::h1d64949939b0af2f
                        at libcore/panicking.rs:71
   8:     0x555557e1bdab - core::result::unwrap_failed::h06dbaa81bf987af3
                        at /checkout/src/libcore/macros.rs:23
   9:     0x555557db92e4 - <core::result::Result<T, E>>::expect::h5589b06e1acd171f
                        at /checkout/src/libcore/result.rs:809
  10:     0x555557ac5375 - <script::dom::bindings::cell::DomRefCell<T>>::borrow::h10758e3ad589befe
                        at components/script/dom/bindings/cell.rs:70
  11:     0x555557ad61e8 - <script::dom::bindings::cell::DomRefCell<T> as script::dom::bindings::trace::JSTraceable>::trace::hd4724263efc5033f
                        at components/script/dom/bindings/trace.rs:209
  12:     0x55555716d458 - <script::script_thread::ScriptThread as script::dom::bindings::trace::JSTraceable>::trace::hb65cd1155a4a9d14
                        at components/script/script_thread.rs:389
  13:     0x55555732f2d5 - script::script_thread::trace_thread::{{closure}}::hc51be3a93dc8d01c
                        at components/script/script_thread.rs:138
  14:     0x55555815ddd2 - <std::thread::local::LocalKey<T>>::try_with::hca19a1a28d15340e
                        at /checkout/src/libstd/thread/local.rs:377
  15:     0x555557f313dc - <std::thread::local::LocalKey<T>>::with::h86c4b7d085571e1f
                        at /checkout/src/libstd/thread/local.rs:288
  16:     0x55555714d423 - script::script_thread::trace_thread::h3d1efaa40566f34d
                        at components/script/script_thread.rs:135
  17:     0x55555773dcf5 - script::script_runtime::trace_rust_roots::hd1689110d0e1089e
                        at components/script/script_runtime.rs:428
  18:     0x55555b8f4ba4 - _ZN2js2gc9GCRuntime11markRuntimeEP8JSTracerNS1_18TraceOrMarkRuntimeERNS_26AutoLockForExclusiveAccessE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/gc/RootMarking.cpp:343
  19:     0x55555b45764d - _ZN2js2gc9GCRuntime14beginMarkPhaseEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsgc.cpp:3907
  20:     0x55555b45e577 - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsgc.cpp:5889
  21:     0x55555b45f2de - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsgc.cpp:6174
  22:     0x55555b45f81f - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
  24:     0x55555b39996f - _Z5JS_GCP9JSRuntime
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsapi.cpp:1340
  25:     0x55555693d42e - <script::dom::window::Window as script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::WindowMethods>::Gc::h52eeff85a6a6c2de
                        at components/script/dom/window.rs:806
  26:     0x555556f9a2cb - script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::gc::{{closure}}::hea78f2b66cba4081
                        at /shared/dev/rust/servo/target/debug/build/script-c42abaa61a41d086/out/Bindings/WindowBinding.rs:2605
  27:     0x55555645f61c - core::ops::function::FnOnce::call_once::ha665ccf27c6bf004
                        at /checkout/src/libcore/ops/function.rs:223
  28:     0x5555571ac64a - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd50d3d0dc3bfc1a1
                        at /checkout/src/libstd/panic.rs:293
  29:     0x555556cc3054 - std::panicking::try::do_call::h44c3f521c6aa394e
                        at /checkout/src/libstd/panicking.rs:479
  30:     0x55555bd58e7e - __rust_maybe_catch_panic
                        at libpanic_unwind/lib.rs:102
  31:     0x555556c27d05 - std::panicking::try::h970c3cbe8baeb4fb
                        at /checkout/src/libstd/panicking.rs:458
  32:     0x5555571f9fc1 - std::panic::catch_unwind::hf3caccc86adf43e2
                        at /checkout/src/libstd/panic.rs:358
  33:     0x555556626e6e - mozjs::panic::wrap_panic::h921f34c3f403c5d5
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs-0.1.11/src/panic.rs:22
  34:     0x5555579d1d32 - script::dom::bindings::codegen::Bindings::WindowBinding::WindowBinding::gc::hfac9a7e0624a378d
                        at /shared/dev/rust/servo/target/debug/build/script-c42abaa61a41d086/out/Bindings/WindowBinding.rs:2601
  35:     0x55555afead28 - CallJitMethodOp
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs-0.1.11/src/jsglue.cpp:516
  36:     0x555556d958a2 - script::dom::bindings::utils::generic_call::hdd35dc4634869672
                        at components/script/dom/bindings/utils.rs:450
  37:     0x555556d9590b - script::dom::bindings::utils::generic_method::hb42754104043a424
                        at components/script/dom/bindings/utils.rs:458
  38:     0x55555b666ceb - _ZN2js12CallJSNativeEP9JSContextPFbS1_jPN2JS5ValueEERKNS2_8CallArgsE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jscntxtinlines.h:232
  39:     0x55555b635143 - _ZN2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstructE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:453
  40:     0x55555b63546a - InternalCall
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:498
  41:     0x55555b635494 - _ZN2js13CallFromStackEP9JSContextRKN2JS8CallArgsE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:504
  42:     0x55555b6424c0 - Interpret
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:2873
  43:     0x55555b634dc5 - _ZN2js9RunScriptEP9JSContextRNS_8RunStateE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:399
  44:     0x55555b636188 - _ZN2js13ExecuteKernelEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectRKNS2_5ValueENS_16AbstractFramePtrEPS9_
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:679
  45:     0x55555b636448 - _ZN2js7ExecuteEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectPNS2_5ValueE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/vm/Interpreter.cpp:712
  46:     0x55555b3a5b55 - Evaluate
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsapi.cpp:4407
  47:     0x55555b3a5e90 - Evaluate
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsapi.cpp:4443
  48:     0x55555b3a6410 - _ZN2JS8EvaluateEP9JSContextRKNS_22ReadOnlyCompileOptionsEPKDsmNS_13MutableHandleINS_5ValueEEE
                        at /home/mateon/.cargo/registry/src/github.com-1ecc6299db9ec823/mozjs_sys-0.50.0/mozjs/js/src/jsapi.cpp:4501
  49:     0x555557e7895d - script::dom::globalscope::GlobalScope::evaluate_script_on_global_with_result::{{closure}}::hc2c7d4ccb1ebf881
                        at components/script/dom/globalscope.rs:414
  50:     0x555557458930 - profile_traits::time::profile::hf0ef2260964ed4a4
                        at /shared/dev/rust/servo/components/profile_traits/time.rs:125
  51:     0x55555731788f - script::dom::globalscope::GlobalScope::evaluate_script_on_global_with_result::hc7ea15990d3a0937
                        at components/script/dom/globalscope.rs:398
  52:     0x555557e642b6 - script::dom::htmlscriptelement::HTMLScriptElement::run_a_classic_script::ha0e4d632ea02b992
                        at components/script/dom/htmlscriptelement.rs:569
  53:     0x555557e63c25 - script::dom::htmlscriptelement::HTMLScriptElement::execute::hff9b43b2271c3a80
                        at components/script/dom/htmlscriptelement.rs:539
  54:     0x555557e61f4e - script::dom::htmlscriptelement::HTMLScriptElement::prepare::h7c4c688807744c6f
                        at components/script/dom/htmlscriptelement.rs:452
  55:     0x55555783f95d - script::dom::servoparser::ServoParser::tokenize::h77a8946727767ec9
                        at components/script/dom/servoparser/mod.rs:473
  56:     0x555556eb0d27 - script::dom::servoparser::ServoParser::do_parse_sync::h6f827e51cedfced9
                        at components/script/dom/servoparser/mod.rs:428
  57:     0x55555783f2ef - script::dom::servoparser::ServoParser::parse_sync::{{closure}}::h1bc0bdcda668941a
                        at components/script/dom/servoparser/mod.rs:414
  58:     0x5555574583bc - profile_traits::time::profile::he12e778dcb1196f2
                        at /shared/dev/rust/servo/components/profile_traits/time.rs:125
  59:     0x555556eb0a8e - script::dom::servoparser::ServoParser::parse_sync::hd1cc34b5b0487f42
                        at components/script/dom/servoparser/mod.rs:411
  60:     0x555556eb0fdd - script::dom::servoparser::ServoParser::parse_bytes_chunk::h84269f40a9194091
                        at components/script/dom/servoparser/mod.rs:453
  61:     0x555556eb39e3 - <script::dom::servoparser::ParserContext as net_traits::FetchResponseListener>::process_response_chunk::h4adbcc96533d853d
                        at components/script/dom/servoparser/mod.rs:720
  62:     0x55555716ab4f - script::script_thread::ScriptThread::handle_fetch_chunk::h563f545d0ca052dd
                        at components/script/script_thread.rs:2542
  63:     0x555557155bb3 - script::script_thread::ScriptThread::handle_msg_from_constellation::h8cf45041f7282b8d
                        at components/script/script_thread.rs:1269
  64:     0x555557331f0c - script::script_thread::ScriptThread::handle_msgs::{{closure}}::h4683011b2bd13d1e
                        at components/script/script_thread.rs:1074
  65:     0x555557334cf5 - script::script_thread::ScriptThread::profile_event::hf584c39318e19a85
                        at components/script/script_thread.rs:1247
  66:     0x5555571529dd - script::script_thread::ScriptThread::handle_msgs::h565938d8050c7cb5
                        at components/script/script_thread.rs:1068
  67:     0x5555571506cb - script::script_thread::ScriptThread::start::h16d1bf289c232867
                        at components/script/script_thread.rs:900
  68:     0x55555732f6bc - <script::script_thread::ScriptThread as script_traits::ScriptThreadFactory>::create::{{closure}}::{{closure}}::hcedf169bd3fe885b
                        at components/script/script_thread.rs:581
  69:     0x555557c615c4 - profile_traits::mem::ProfilerChan::run_with_memory_reporting::he5ab23fe071cf439
                        at /shared/dev/rust/servo/components/profile_traits/mem.rs:63
  70:     0x55555732fc83 - <script::script_thread::ScriptThread as script_traits::ScriptThreadFactory>::create::{{closure}}::h9ef2c7ba5d36a96e
                        at components/script/script_thread.rs:580
  71:     0x555558648b74 - std::sys_common::backtrace::__rust_begin_short_backtrace::h953e62ce17b78fea
                        at /checkout/src/libstd/sys_common/backtrace.rs:133
  72:     0x55555824b55b - std::thread::Builder::spawn::{{closure}}::{{closure}}::h90781c0374be3f4e
                        at /checkout/src/libstd/thread/mod.rs:406
  73:     0x555557182784 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h39af0b211967cbf1
                        at /checkout/src/libstd/panic.rs:293
  74:     0x555556cbb474 - std::panicking::try::do_call::h3439a98887008f1b
                        at /checkout/src/libstd/panicking.rs:479
  75:     0x55555bd58e7e - __rust_maybe_catch_panic
                        at libpanic_unwind/lib.rs:102
  76:     0x555556c6a5dc - std::panicking::try::hd11246e5dbe5c919
                        at /checkout/src/libstd/panicking.rs:458
  77:     0x5555571bc2bc - std::panic::catch_unwind::h1052347b62d11d3a
                        at /checkout/src/libstd/panic.rs:358
  78:     0x55555824ac98 - std::thread::Builder::spawn::{{closure}}::ha5d793ce774aea08
                        at /checkout/src/libstd/thread/mod.rs:405
  79:     0x55555824b775 - <F as alloc::boxed::FnBox<A>>::call_box::h68afeb10a2745593
                        at /checkout/src/liballoc/boxed.rs:788
  80:     0x55555bd43bbb - <alloc::boxed::Box<alloc::boxed::FnBox<A, Output$u3d$R$GT$$u20$$u2b$$u20$$u27$a$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h13f1b0bf377a9f5b
                        at /checkout/src/liballoc/boxed.rs:798
                         - std::sys_common::thread::start_thread::hb5b6e0447b9691dc
                        at libstd/sys_common/thread.rs:24
                         - std::sys::unix::thread::Thread::new::thread_start::hcaff0bef1a01c624
                        at libstd/sys/unix/thread.rs:90
  81:     0x7ffff6eb0493 - start_thread
  82:     0x7ffff5479abe - __clone
  83:                0x0 - <unknown>
ERROR:servo: DomRefCell<T> already mutably borrowed: BorrowError
Pipeline failed in hard-fail mode.  Crashing!
Servo exited with return value 1
@jdm
Copy link
Member

@jdm jdm commented Feb 20, 2018

This is a result of #19872. cc @nox

@nox
Copy link
Member

@nox nox commented Mar 16, 2019

This is indeed a result of #19872 but it exhibits an existing bug where we seem to be mutably borrowing stuff while JS is running. I will look into it next week.

@nox nox self-assigned this Mar 16, 2019
@dralley
Copy link
Contributor

@dralley dralley commented Mar 24, 2020

Bump

@jdm
Copy link
Member

@jdm jdm commented Mar 24, 2020

@dralley We appreciate help with issue triage, but "bump" comments aren't actionable.

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
4 participants
You can’t perform that action at this time.