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

Locked::read_with called with a guard from an unrelated SharedRwLock #16097

Closed
ferjm opened this issue Mar 23, 2017 · 10 comments
Closed

Locked::read_with called with a guard from an unrelated SharedRwLock #16097

ferjm opened this issue Mar 23, 2017 · 10 comments

Comments

@ferjm
Copy link
Member

@ferjm ferjm commented Mar 23, 2017

I'm seeing this panic with Google Docs, after login with 2FA.

Locked::read_with called with a guard from an unrelated SharedRwLock (thread LayoutThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(3) }, at /Volumes/mozilladev/servo/components/style/shared_lock.rs:162)
stack backtrace:
   0:        0x111cebe71 - backtrace::backtrace::trace::h3e2e1b861ded210d
   1:        0x111ce4583 - backtrace::capture::Backtrace::new::h1ee17dbbfc5d7f69
   2:        0x10c6b46cf - servo::main::_$u7b$$u7b$closure$u7d$$u7d$::h5af6f3c799ab1ca2
   3:        0x111dda9a9 - std::panicking::rust_panic_with_hook::hdbc3bba6a9dc0bb9
   4:        0x10d1fef98 - std::panicking::begin_panic::h5e831ea0329f23f0
   5:        0x10d29e1d7 - _$LT$style..shared_lock..Locked$LT$T$GT$$GT$::read_with::h26192574a8f4df22
   6:        0x10d2db901 - style::stylist::Stylist::push_applicable_declarations::hce43e5bb04ad4909
   7:        0x10d2de01e - style::matching::MatchMethods::match_element::he92905bb92f381c0
   8:        0x10d2e3cdf - style::traversal::compute_style::h6e89deb3075def6c
   9:        0x10d1003f3 - style::traversal::recalc_style_at::h702d262eca308362
  10:        0x10d090396 - _$LT$layout..traversal..RecalcStyleAndConstructFlows$LT$$u27$a$GT$$u20$as$u20$style..traversal..DomTraversal$LT$E$GT$$GT$::process_preorder::h8bd70bfdfa4c2da5
  11:        0x10d0fd9e9 - style::sequential::traverse_dom::doit::h25bfa2c5545a6661
  12:        0x10d0fdbc5 - style::sequential::traverse_dom::doit::_$u7b$$u7b$closure$u7d$$u7d$::h3eb153c49cfd63fb
  13:        0x10d0fefee - style::traversal::DomTraversal::traverse_children::ha2b5cc5386a40fa7
  14:        0x10d0fdab3 - style::sequential::traverse_dom::doit::h25bfa2c5545a6661
  15:        0x10d0fdbc5 - style::sequential::traverse_dom::doit::_$u7b$$u7b$closure$u7d$$u7d$::h3eb153c49cfd63fb
  16:        0x10d0fefee - style::traversal::DomTraversal::traverse_children::ha2b5cc5386a40fa7
  17:        0x10d0fdab3 - style::sequential::traverse_dom::doit::h25bfa2c5545a6661
  18:        0x10d0fdbc5 - style::sequential::traverse_dom::doit::_$u7b$$u7b$closure$u7d$$u7d$::h3eb153c49cfd63fb
  19:        0x10d0fefee - style::traversal::DomTraversal::traverse_children::ha2b5cc5386a40fa7
  20:        0x10d0fdab3 - style::sequential::traverse_dom::doit::h25bfa2c5545a6661
  21:        0x10d0fdbc5 - style::sequential::traverse_dom::doit::_$u7b$$u7b$closure$u7d$$u7d$::h3eb153c49cfd63fb
  22:        0x10d0fefee - style::traversal::DomTraversal::traverse_children::ha2b5cc5386a40fa7
  23:        0x10d0fdab3 - style::sequential::traverse_dom::doit::h25bfa2c5545a6661
  24:        0x10d0fd78d - style::sequential::traverse_dom::h22e288db3b13d711
  25:        0x10d32c5e2 - layout_thread::LayoutThread::handle_reflow::_$u7b$$u7b$closure$u7d$$u7d$::h77aeeb8172d0e936
  26:        0x10d26dee0 - profile_traits::time::profile::h1852bc827ccf688e
  27:        0x10d248643 - layout_thread::LayoutThread::handle_reflow::h2531f655c88470f6
  28:        0x10d32ae7d - layout_thread::LayoutThread::handle_request_helper::_$u7b$$u7b$closure$u7d$$u7d$::h1eb039ee13223791
  29:        0x10d26f2bf - profile_traits::time::profile::hb3e8d5c2d6422276
  30:        0x10d242d2e - layout_thread::LayoutThread::handle_request_helper::h6abdc642fbc2805b
  31:        0x10d242056 - layout_thread::LayoutThread::handle_request::hf05d1ccd5fb92227
  32:        0x10d24125e - layout_thread::LayoutThread::start::he4348c7328cbb3db
  33:        0x10d23e96d - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6d9dea244ed37303
  34:        0x10d1f8a4e - profile_traits::mem::ProfilerChan::run_with_memory_reporting::h2fab3432201ae36d
  35:        0x10d32a9e9 - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::h172aabb1f74d502b
  36:        0x10d31ddf1 - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h84324a8c22c501a9
  37:        0x10d2001d6 - std::panicking::try::do_call::h487abd49823387ba
  38:        0x111ddb96a - __rust_maybe_catch_panic
  39:        0x10d1ff8a8 - std::panicking::try::hc3c8c63b7c4f65b4
  40:        0x10d294deb - std::panic::catch_unwind::h12deed59866616ef
  41:        0x10d0ab32f - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h3a4f01703f95a54b
  42:        0x10d0e94b2 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::haaad5e7b289f012b
  43:        0x111dd7534 - std::sys::imp::thread::Thread::new::thread_start::h4008e1859fbd98b8
  44:     0x7fffc5460aaa - _pthread_body
  45:     0x7fffc54609f6 - _pthread_start
ERROR:servo: Locked::read_with called with a guard from an unrelated SharedRwLock
assertion failed: self.current_element_info.is_none() (thread LayoutThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(3) }, at /Volumes/mozilladev/servo/components/style/context.rs:299)
stack backtrace:
   0:        0x111cebe71 - backtrace::backtrace::trace::h3e2e1b861ded210d
   1:        0x111ce4583 - backtrace::capture::Backtrace::new::h1ee17dbbfc5d7f69
   2:        0x10c6b46cf - servo::main::_$u7b$$u7b$closure$u7d$$u7d$::h5af6f3c799ab1ca2
   3:        0x111dda9a9 - std::panicking::rust_panic_with_hook::hdbc3bba6a9dc0bb9
   4:        0x10d1fef98 - std::panicking::begin_panic::h5e831ea0329f23f0
   5:        0x10d1ce33a - _$LT$style..context..ThreadLocalStyleContext$LT$E$GT$$u20$as$u20$core..ops..Drop$GT$::drop::h0d43916527ba320d
   6:        0x10d0e29f0 - drop::h79f1374570f56b15
   7:        0x10d0e3478 - drop::h8b0017319d86a278
   8:        0x10d0fd5cb - style::sequential::traverse_dom::h22e288db3b13d711
   9:        0x10d32c5e2 - layout_thread::LayoutThread::handle_reflow::_$u7b$$u7b$closure$u7d$$u7d$::h77aeeb8172d0e936
  10:        0x10d26dee0 - profile_traits::time::profile::h1852bc827ccf688e
  11:        0x10d248643 - layout_thread::LayoutThread::handle_reflow::h2531f655c88470f6
  12:        0x10d32ae7d - layout_thread::LayoutThread::handle_request_helper::_$u7b$$u7b$closure$u7d$$u7d$::h1eb039ee13223791
  13:        0x10d26f2bf - profile_traits::time::profile::hb3e8d5c2d6422276
  14:        0x10d242d2e - layout_thread::LayoutThread::handle_request_helper::h6abdc642fbc2805b
  15:        0x10d242056 - layout_thread::LayoutThread::handle_request::hf05d1ccd5fb92227
  16:        0x10d24125e - layout_thread::LayoutThread::start::he4348c7328cbb3db
  17:        0x10d23e96d - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6d9dea244ed37303
  18:        0x10d1f8a4e - profile_traits::mem::ProfilerChan::run_with_memory_reporting::h2fab3432201ae36d
  19:        0x10d32a9e9 - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::h172aabb1f74d502b
  20:        0x10d31ddf1 - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h84324a8c22c501a9
  21:        0x10d2001d6 - std::panicking::try::do_call::h487abd49823387ba
  22:        0x111ddb96a - __rust_maybe_catch_panic
  23:        0x10d1ff8a8 - std::panicking::try::hc3c8c63b7c4f65b4
  24:        0x10d294deb - std::panic::catch_unwind::h12deed59866616ef
  25:        0x10d0ab32f - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h3a4f01703f95a54b
  26:        0x10d0e94b2 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::haaad5e7b289f012b
  27:        0x111dd7534 - std::sys::imp::thread::Thread::new::thread_start::h4008e1859fbd98b8
  28:     0x7fffc5460aaa - _pthread_body
  29:     0x7fffc54609f6 - _pthread_start
ERROR:servo: assertion failed: self.current_element_info.is_none()
thread panicked while panicking. aborting.
ERROR:constellation::constellation: about:failure failed
called `Result::unwrap()` on an `Err` value: "SendError(..)" (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(4) }, at src/libcore/result.rs:860)
Stack trace for thread "LayoutThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(3) }"
stack backtrace:
   0:        0x111cebe71 - backtrace::backtrace::trace::h3e2e1b861ded210d
   1:        0x111ce4583 - backtrace::capture::Backtrace::new::h1ee17dbbfc5d7f69
   2:        0x10c6b34df - servo::install_crash_handler::handler::hca8bd3c17e6d6baf
   3:     0x7fffc5456bb9 - _sigtramp
   4:        0x111ddaa0a - std::panicking::rust_panic_with_hook::hdbc3bba6a9dc0bb9
   5:        0x10d1fef98 - std::panicking::begin_panic::h5e831ea0329f23f0
   6:        0x10d1ce33a - _$LT$style..context..ThreadLocalStyleContext$LT$E$GT$$u20$as$u20$core..ops..Drop$GT$::drop::h0d43916527ba320d
   7:        0x10d0e29f0 - drop::h79f1374570f56b15
   8:        0x10d0e3478 - drop::h8b0017319d86a278
   9:        0x10d0fd5cb - style::sequential::traverse_dom::h22e288db3b13d711
  10:        0x10d32c5e2 - layout_thread::LayoutThread::handle_reflow::_$u7b$$u7b$closure$u7d$$u7d$::h77aeeb8172d0e936
  11:        0x10d26dee0 - profile_traits::time::profile::h1852bc827ccf688e
  12:        0x10d248643 - layout_thread::LayoutThread::handle_reflow::h2531f655c88470f6
  13:        0x10d32ae7d - layout_thread::LayoutThread::handle_request_helper::_$u7b$$u7b$closure$u7d$$u7d$::h1eb039ee13223791
  14:        0x10d26f2bf - profile_traits::time::profile::hb3e8d5c2d6422276
  15:        0x10d242d2e - layout_thread::LayoutThread::handle_request_helper::h6abdc642fbc2805b
  16:        0x10d242056 - layout_thread::LayoutThread::handle_request::hf05d1ccd5fb92227
  17:        0x10d24125e - layout_thread::LayoutThread::start::he4348c7328cbb3db
  18:        0x10d23e96d - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6d9dea244ed37303
  19:        0x10d1f8a4e - profile_traits::mem::ProfilerChan::run_with_memory_reporting::h2fab3432201ae36d
  20:        0x10d32a9e9 - _$LT$layout_thread..LayoutThread$u20$as$u20$layout_traits..LayoutThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::h172aabb1f74d502b
  21:        0x10d31ddf1 - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h84324a8c22c501a9
  22:        0x10d2001d6 - std::panicking::try::do_call::h487abd49823387ba
  23:        0x111ddb96a - __rust_maybe_catch_panic
  24:        0x10d1ff8a8 - std::panicking::try::hc3c8c63b7c4f65b4
  25:        0x10d294deb - std::panic::catch_unwind::h12deed59866616ef
  26:        0x10d0ab32f - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h3a4f01703f95a54b
  27:        0x10d0e94b2 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::haaad5e7b289f012b
  28:        0x111dd7534 - std::sys::imp::thread::Thread::new::thread_start::h4008e1859fbd98b8
  29:     0x7fffc5460aaa - _pthread_body
  30:     0x7fffc54609f6 - _pthread_start
stack backtrace:
   0:        0x111cebe71 - backtrace::backtrace::trace::h3e2e1b861ded210d
   1:        0x111ce4583 - backtrace::capture::Backtrace::new::h1ee17dbbfc5d7f69
   2:        0x10c6b46cf - servo::main::_$u7b$$u7b$closure$u7d$$u7d$::h5af6f3c799ab1ca2
   3:        0x111dda9a9 - std::panicking::rust_panic_with_hook::hdbc3bba6a9dc0bb9
   4:        0x111dda804 - std::panicking::begin_panic::ha249c774b9bf96e1
   5:        0x111dda772 - std::panicking::begin_panic_fmt::ha197daaf02a649ab
   6:        0x111dda6d7 - rust_begin_unwind
   7:        0x111e02c30 - core::panicking::panic_fmt::h7414cb5ce71ea361
   8:        0x10e2fc5a5 - core::result::unwrap_failed::h4e695dbfc31194de
   9:        0x10ed5732d - _$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$::unwrap::h6ba6b3a1719b61f1
  10:        0x10f130861 - script::dom::window::Window::force_reflow::habd1ea2b1e0d8d30
  11:        0x10f163835 - script::script_thread::ScriptThread::handle_resize_event::h5d950a15af3fe112
  12:        0x10f16086d - script::script_thread::ScriptThread::handle_event::hccf3665eb7fd41d2
  13:        0x10f149343 - script::script_thread::ScriptThread::handle_msgs::h83084aa069f66afd
  14:        0x10f148d45 - script::script_thread::ScriptThread::start::h211c12e8c86b8c6c
  15:        0x10e5be444 - _$LT$script..script_thread..ScriptThread$u20$as$u20$script_traits..ScriptThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h19f6294b4c79cd3e
  16:        0x10e1c26a7 - profile_traits::mem::ProfilerChan::run_with_memory_reporting::h8cd4bae3a524e6d3
  17:        0x10dd1a677 - _$LT$script..script_thread..ScriptThread$u20$as$u20$script_traits..ScriptThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::h65aa162c3b786987
  18:        0x10dc15dca - _$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::h392a60ed8660e3ca
  19:        0x10d7be82d - std::panicking::try::do_call::h989f6795c7dd8f75
  20:        0x111ddb96a - __rust_maybe_catch_panic
  21:        0x10d676a83 - std::panicking::try::hb0e9b9704d164007
  22:        0x10da872c4 - std::panic::catch_unwind::h9eea3d9ab097615d
  23:        0x10eb3fa38 - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h5ed9a840d05e6e72
  24:        0x10ee05ad2 - _$LT$F$u20$as$u20$alloc..boxed..FnBox$LT$A$GT$$GT$::call_box::h1fcf66f8b50dabda
  25:        0x111dd7534 - std::sys::imp::thread::Thread::new::thread_start::h4008e1859fbd98b8
  26:     0x7fffc5460aaa - _pthread_body
  27:     0x7fffc54609f6 - _pthread_start
ERROR:servo: called `Result::unwrap()` on an `Err` value: "SendError(..)"
ERROR:constellation::constellation: about:failure failed

Blocks #13942

@ferjm ferjm added the I-panic label Mar 23, 2017
@ferjm
Copy link
Member Author

@ferjm ferjm commented Mar 23, 2017

@emilio
Copy link
Member

@emilio emilio commented Mar 23, 2017

It'd be nice to see what the <T> in the lock is, presumably an element from another document, and we're trying to read its style attribute?

@zarazek
Copy link
Contributor

@zarazek zarazek commented Mar 24, 2017

I can see it too on http://natemat.pl:

stack backtrace:
0: 0x55b24df66fc1 - backtrace::backtrace::libunwind::trace
at /home/osboxes/servo/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.0/src/backtrace/libunwind.rs:53
- backtrace::backtrace::trace
at /home/osboxes/servo/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.0/src/backtrace/mod.rs:42
1: 0x55b24df621a3 - backtrace::capture::{{impl}}::new
at /home/osboxes/servo/servo/target/debug/build/backtrace-17fa5380aeaf9437/out/capture.rs:79
2: 0x55b24a3f89af - servo::main::{{closure}}
at /home/osboxes/servo/servo/ports/servo/main.rs:123
3: 0x55b2500ce74d - std::panicking::rust_panic_with_hook
at /checkout/src/libstd/panicking.rs:550
4: 0x55b24b35a6f8 - std::panicking::begin_panic<&str>
at /checkout/src/libstd/panicking.rs:511
5: 0x55b24bfeb3a7 - style::shared_lock::{{impl}}::read_withstyle::properties::declaration_block::PropertyDeclarationBlock
at /home/osboxes/servo/servo/ports/servo/:3
6: 0x55b24c26cc31 - script::dom::cssstyledeclaration::{{impl}}::with_block<closure,()>
at /home/osboxes/servo/servo/components/script/dom/cssstyledeclaration.rs:124
7: 0x55b24c26d6f9 - script::dom::cssstyledeclaration::{{impl}}::get_property_value
at /home/osboxes/servo/servo/components/script/dom/cssstyledeclaration.rs:227
8: 0x55b24c4a04dc - script::dom::cssstyledeclaration::{{impl}}::Opacity
at /home/osboxes/servo/servo/components/script/dom/cssstyledeclaration.rs:166
9: 0x55b24bb38b76 - script::dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationBinding::get_opacity::{{closure}}
at /home/osboxes/servo/servo/target/debug/build/script-f425432d739ae389/out/Bindings/CSSStyleDeclarationBinding.rs:9971
10: 0x55b24bee59c8 - core::ops::FnOnce::call_once::h035aceb37a5bfaf3
11: 0x55b24b9e9efa - std::panic::{{impl}}::call_once<bool,closure>
at /checkout/src/libstd/panic.rs:296
12: 0x55b24b57cced - std::panicking::try::do_call<std::panic::AssertUnwindSafe,bool>
at /checkout/src/libstd/panicking.rs:454
13: 0x55b2500d576a - panic_unwind::__rust_maybe_catch_panic
at /checkout/src/libpanic_unwind/lib.rs:98
14: 0x55b24b41ab51 - std::panicking::try<bool,std::panic::AssertUnwindSafe>
at /checkout/src/libstd/panicking.rs:433
15: 0x55b24b886979 - std::panic::catch_unwind<std::panic::AssertUnwindSafe,bool>
at /checkout/src/libstd/panic.rs:361
16: 0x55b24b2674d1 - js::panic::wrap_panic<std::panic::AssertUnwindSafe,bool>
at /home/osboxes/servo/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/101c6b6/src/panic.rs:22
17: 0x55b24c3b32c1 - script::dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationBinding::get_opacity
at /home/osboxes/servo/servo/target/debug/build/script-f425432d739ae389/out/Bindings/CSSStyleDeclarationBinding.rs:9969
18: 0x55b24cfea9a8 - CallJitGetterOp
at /home/osboxes/servo/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/101c6b6/src/jsglue.cpp:454
19: 0x55b24c24c252 - script::dom::bindings::utils::generic_call
at /home/osboxes/servo/servo/components/script/dom/bindings/utils.rs:446
20: 0x55b24c24c3d1 - script::dom::bindings::utils::generic_getter
at /home/osboxes/servo/servo/components/script/dom/bindings/utils.rs:462
21: 0x55b24f7f56bd - 2js12CallJSNativeEP9JSContextPFbS1_jPN2JS5ValueEERKNS2_8CallArgs
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jscntxtinlines.h:232
22: 0x55b24f7c18b7 - 2js23InternalCallOrConstructEP9JSContextRKN2JS8CallArgsENS_14MaybeConstruct
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:453
23: 0x55b24f7c1bf8 - InternalCall
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:498
24: 0x55b24f7c1cb2 - 2js4CallEP9JSContextN2JS6HandleINS2_5ValueEEES5_RKNS_13AnyInvokeArgsENS2_13MutableHandleIS4_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:517
25: 0x55b24f7c2601 - 2js10CallGetterEP9JSContextN2JS6HandleINS2_5ValueEEES5_NS2_13MutableHandleIS4_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:631
26: 0x55b24f7e67df - CallGetter
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.cpp:1737
27: 0x55b24f7ec49f - GetExistingProperty<(js::AllowGC)1u>
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.cpp:1785
28: 0x55b24f7eca20 - NativeGetPropertyInline<(js::AllowGC)1u>
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.cpp:2012
29: 0x55b24f7e71ad - 2js17NativeGetPropertyEP9JSContextN2JS6HandleIPNS_12NativeObjectEEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.cpp:2046
30: 0x55b24f17537e - 2js11GetPropertyEP9JSContextN2JS6HandleIP8JSObjectEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.h:1481
31: 0x55b24f4fc02f - _Z23JS_ForwardGetPropertyToP9JSContextN2JS6HandleIP8JSObjectEENS2_I4jsidEENS2_INS1_5ValueEEENS1_13MutableHandleIS8_EE
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jsapi.cpp:2527
32: 0x55b24c247f61 - script::dom::bindings::utils::get_property_on_prototype
at /home/osboxes/servo/servo/components/script/dom/bindings/utils.rs:152
33: 0x55b24bb98632 - script::dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationBinding::get::{{closure}}
at /home/osboxes/servo/servo/target/debug/build/script-f425432d739ae389/out/Bindings/CSSStyleDeclarationBinding.rs:28130
34: 0x55b24bee4c68 - core::ops::FnOnce::call_once::hb9fcae38c7d52812
35: 0x55b24b9e495d - std::panic::{{impl}}::call_once<bool,closure>
at /checkout/src/libstd/panic.rs:296
36: 0x55b24b5ec407 - std::panicking::try::do_call<std::panic::AssertUnwindSafe,bool>
at /checkout/src/libstd/panicking.rs:454
37: 0x55b2500d576a - panic_unwind::__rust_maybe_catch_panic
at /checkout/src/libpanic_unwind/lib.rs:98
38: 0x55b24b477961 - std::panicking::try<bool,std::panic::AssertUnwindSafe>
at /checkout/src/libstd/panicking.rs:433
39: 0x55b24b8453f7 - std::panic::catch_unwind<std::panic::AssertUnwindSafe,bool>
at /checkout/src/libstd/panic.rs:361
40: 0x55b24b18bc00 - js::panic::wrap_panic<std::panic::AssertUnwindSafe,bool>
at /home/osboxes/servo/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/101c6b6/src/panic.rs:22
41: 0x55b24c3c6454 - script::dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::CSSStyleDeclarationBinding::get
at /home/osboxes/servo/servo/target/debug/build/script-f425432d739ae389/out/Bindings/CSSStyleDeclarationBinding.rs:28098
42: 0x55b24cfea0c6 - K22ForwardingProxyHandler3getEP9JSContextN2JS6HandleIP8JSObjectEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
43: 0x55b24f6bd27e - 2js5Proxy3getEP9JSContextN2JS6HandleIP8JSObjectEENS4_INS3_5ValueEEENS4_I4jsidEENS3_13MutableHandleIS8_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/proxy/Proxy.cpp:310
44: 0x55b24f6be983 - 2js17proxy_GetPropertyEP9JSContextN2JS6HandleIP8JSObjectEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/proxy/Proxy.cpp:582
45: 0x55b24f17534f - 2js11GetPropertyEP9JSContextN2JS6HandleIP8JSObjectEENS3_INS2_5ValueEEENS3_I4jsidEENS2_13MutableHandleIS7_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/NativeObject.h:1480
46: 0x55b24f2dc3bd - 2js11GetPropertyEP9JSContextN2JS6HandleIP8JSObjectEENS3_INS2_5ValueEEEPNS_12PropertyNameENS2_13MutableHandleIS7_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jsobj.h:831
47: 0x55b24f7d8c58 - 2js11GetPropertyEP9JSContextN2JS6HandleINS2_5ValueEEENS3_IPNS_12PropertyNameEEENS2_13MutableHandleIS4_E
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:4161
48: 0x55b24f7bfeb4 - GetPropertyOperation
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:189
49: 0x55b24f7ccfb6 - Interpret
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:2590
50: 0x55b24f7c1510 - 2js9RunScriptEP9JSContextRNS_8RunState
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:399
51: 0x55b24f7c2a9d - ZN2js13ExecuteKernelEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectRKNS2_5ValueENS_16AbstractFramePtrEPS9
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:679
52: 0x55b24f7c2d86 - 2js7ExecuteEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectPNS2_5Value
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/vm/Interpreter.cpp:712
53: 0x55b24f504d84 - Evaluate
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jsapi.cpp:4407
54: 0x55b24f50510e - Evaluate
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jsapi.cpp:4443
55: 0x55b24f50571d - 2JS8EvaluateEP9JSContextRKNS_22ReadOnlyCompileOptionsEPKDsmNS_13MutableHandleINS_5ValueEE
at /home/osboxes/servo/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/7cd72d8/mozjs/js/src/jsapi.cpp:4501
56: 0x55b24cdb3ad4 - script::dom::globalscope::{{impl}}::evaluate_script_on_global_with_result::{{closure}}
at /home/osboxes/servo/servo/components/script/dom/globalscope.rs:373
57: 0x55b24c557335 - profile_traits::time::profile<(),closure>
at /home/osboxes/servo/servo/components/profile_traits/time.rs:120
58: 0x55b24c2af220 - script::dom::globalscope::{{impl}}::evaluate_script_on_global_with_result
at /home/osboxes/servo/servo/components/script/dom/globalscope.rs:359
59: 0x55b24cdfb06a - script::dom::htmlscriptelement::{{impl}}::run_a_classic_script
at /home/osboxes/servo/servo/components/script/dom/htmlscriptelement.rs:520
60: 0x55b24cdfa998 - script::dom::htmlscriptelement::{{impl}}::execute
at /home/osboxes/servo/servo/components/script/dom/htmlscriptelement.rs:490
61: 0x55b24baa8ff9 - script::dom::servoparser::{{impl}}::resume_with_pending_parsing_blocking_script
at /home/osboxes/servo/servo/components/script/dom/servoparser/mod.rs:206
62: 0x55b24c284567 - script::dom::document::{{impl}}::process_pending_parsing_blocking_script
at /home/osboxes/servo/servo/components/script/dom/document.rs:1737
63: 0x55b24c2842a7 - script::dom::document::{{impl}}::pending_parsing_blocking_script_loaded
at /home/osboxes/servo/servo/components/script/dom/document.rs:1724
64: 0x55b24cdf704c - script::dom::htmlscriptelement::{{impl}}::process_response_eof
at /home/osboxes/servo/servo/components/script/dom/htmlscriptelement.rs:215
65: 0x55b24c163299 - net_traits::{{impl}}::processscript::dom::htmlscriptelement::ScriptContext
at /home/osboxes/servo/servo/components/net_traits/lib.rs:262
66: 0x55b24bad5aa1 - script::network_listener::{{impl}}::handler<net_traits::FetchResponseMsg,script::dom::htmlscriptelement::ScriptContext>
at /home/osboxes/servo/servo/components/script/network_listener.rs:63
67: 0x55b24ce5e82c - script::script_thread::{{impl}}::handler<script::network_listener::ListenerRunnable<net_traits::FetchResponseMsg, script::dom::htmlscriptelement::ScriptContext>>
at /home/osboxes/servo/servo/components/script/script_thread.rs:220
68: 0x55b24ce69f4c - script::script_thread::{{impl}}::handle_msg_from_script
at /home/osboxes/servo/servo/components/script/script_thread.rs:1080
69: 0x55b24ce66ce6 - script::script_thread::{{impl}}::handle_msgs::{{closure}}
at /home/osboxes/servo/servo/components/script/script_thread.rs:894
70: 0x55b24ce67231 - script::script_thread::{{impl}}::profile_event<closure,core::option::Option>
at /home/osboxes/servo/servo/components/script/script_thread.rs:1002
71: 0x55b24ce6552a - script::script_thread::{{impl}}::handle_msgs
at /home/osboxes/servo/servo/components/script/script_thread.rs:887
72: 0x55b24ce63c65 - script::script_thread::{{impl}}::start
at /home/osboxes/servo/servo/components/script/script_thread.rs:742
73: 0x55b24c338524 - script::script_thread::{{impl}}::create::{{closure}}::{{closure}}
at /home/osboxes/servo/servo/components/script/script_thread.rs:561
74: 0x55b24bf54204 - profile_traits::mem::{{impl}}::run_with_memory_reporting<closure,fn(profile_traits::mem::ReportsChan) -> script::script_runtime::CommonScriptMsg,script::script_runtime::CommonScriptMsg,std::sync::mpsc::Senderscript::script_thread::MainThreadScriptMsg>
at /home/osboxes/servo/servo/components/profile_traits/mem.rs:63
75: 0x55b24bad7955 - script::script_thread::{{impl}}::create::{{closure}}
at /home/osboxes/servo/servo/components/script/script_thread.rs:560
76: 0x55b24ba0b25a - std::panic::{{impl}}::call_once<(),closure>
at /checkout/src/libstd/panic.rs:296
77: 0x55b24b5eae4d - std::panicking::try::do_call<std::panic::AssertUnwindSafe,()>
at /checkout/src/libstd/panicking.rs:454
78: 0x55b2500d576a - panic_unwind::__rust_maybe_catch_panic
at /checkout/src/libpanic_unwind/lib.rs:98
79: 0x55b24b3acb03 - std::panicking::try<(),std::panic::AssertUnwindSafe>
at /checkout/src/libstd/panicking.rs:433
80: 0x55b24b83fa04 - std::panic::catch_unwind<std::panic::AssertUnwindSafe,()>
at /checkout/src/libstd/panic.rs:361
81: 0x55b24c894618 - std:🧵:{{impl}}::spawn::{{closure}}<closure,()>
at /checkout/src/libstd/thread/mod.rs:360
82: 0x55b24cb43fc2 - alloc::boxed::{{impl}}::call_box<(),closure>
at /checkout/src/liballoc/boxed.rs:640
83: 0x55b2500cd334 - alloc::boxed::{{impl}}::call_once<(),()>
at /checkout/src/liballoc/boxed.rs:650
- std::sys_common:🧵:start_thread
at /checkout/src/libstd/sys_common/thread.rs:21
- std::sys:👿🧵:{{impl}}:🆕:thread_start
at /checkout/src/libstd/sys/unix/thread.rs:84
84: 0x7f30a99d16b9 - start_thread
85: 0x7f30a94f182c - clone
86: 0x0 -

It happens because elements are moved between documents. When Element is created its style_attributes are initialized with style_shared_lock from current document, but this is not updated when element is moved to another document (Node::set_owning_document is called).

@glennw
Copy link
Member

@glennw glennw commented Mar 28, 2017

This also occurs on http://thany.nl/apps/BoxShadows

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Mar 28, 2017

“Interesting” edge case: if I keep a reference to element.style (which implements the CSSStyleDeclaration interface), then move the element to a new document, then modify the style through the kept reference… is the moved element affected?

@emilio
Copy link
Member

@emilio emilio commented Mar 28, 2017

See my comment in #16125:

Also, I suspect this may be an issue too when moving stylesheets across documents, which may be a kind of harder problem, specially with the interactions with CSSOM...

Of course, if you can move an element keeping a ref to its style attribute, the same restrictions also apply. Perhaps the best we can do is a lock per script-thread? Shouldn't be extremely hard I guess.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Mar 28, 2017

One option is reverting #16033 and re-opening #16027 until we figure out how to deal with moving elements across documents.

@emilio
Copy link
Member

@emilio emilio commented Mar 28, 2017

That sounds reasonable to me.

@jdm
Copy link
Member

@jdm jdm commented Apr 3, 2017

Could we move forward with this? It affects many of the nontrivial websites that I've tried to run in Servo.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Apr 3, 2017

I’m working on a sort-of-revert now. (Reverting the behavior to per-process, but keeping most of the code.)

SimonSapin added a commit that referenced this issue Apr 3, 2017
bors-servo added a commit that referenced this issue Apr 3, 2017
Revert to per-process shared lock for author-origin stylesheets

Fixes #16097
Reopens #16027

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16246)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Apr 3, 2017
Revert to per-process shared lock for author-origin stylesheets

Fixes #16097
Reopens #16027

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16246)
<!-- Reviewable:end -->
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Apr 4, 2017
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c8b45f3883847d325c30ab9a95193a8eb530bc5c
mcmanus pushed a commit to mcmanus/gecko that referenced this issue Apr 4, 2017
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd
clementmiao added a commit to clementmiao/servo that referenced this issue Apr 7, 2017
Manishearth pushed a commit to Manishearth/gecko-dev that referenced this issue Apr 11, 2017
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd
JerryShih pushed a commit to JerryShih/gecko-dev that referenced this issue Apr 12, 2017
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Oct 1, 2019
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd

UltraBlame original commit: c2363a9e7d2f5a5e952a3f4e907d8210ea24e504
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Oct 1, 2019
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd

UltraBlame original commit: c2363a9e7d2f5a5e952a3f4e907d8210ea24e504
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Oct 1, 2019
…igin stylesheets (from servo:revert-per-doc); r=jdm

Fixes servo/servo#16097
Reopens servo/servo#16027

Source-Repo: https://github.com/servo/servo
Source-Revision: b6b6608ca3a46113bb488e4da835b4ee743299fd

UltraBlame original commit: c2363a9e7d2f5a5e952a3f4e907d8210ea24e504
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.

6 participants
You can’t perform that action at this time.