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

referrer-policy tests panic due to refcell borrow errors #24730

Closed
jdm opened this issue Nov 13, 2019 · 2 comments
Closed

referrer-policy tests panic due to refcell borrow errors #24730

jdm opened this issue Nov 13, 2019 · 2 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Nov 13, 2019

* thread #41, stop reason = breakpoint 1.1
  * frame #0: 0x0000000108565a84 servo`rust_panic at panicking.rs:517:8 [opt]
    frame #1: 0x00000001085659a3 servo`std::panicking::rust_panic_with_hook::h63cb6ff2996761ab at panicking.rs:488:4 [opt]
    frame #2: 0x000000010856540d servo`std::panicking::continue_panic_fmt::h90720f06a7165248 at panicking.rs:375:4 [opt]
    frame #3: 0x0000000108565369 servo`rust_begin_unwind at panicking.rs:302:4 [opt]
    frame #4: 0x00000001085f704f servo`core::panicking::panic_fmt::h1e1be4c1027751ff at panicking.rs:84:13 [opt]
    frame #5: 0x00000001085f7129 servo`core::result::unwrap_failed::h025aff4e6e908be4 at result.rs:1165:4 [opt]
    frame #6: 0x0000000101cc55a9 servo`core::result::Result$LT$T$C$E$GT$::expect::ha82f7b4d088835df(self=Result<core::cell::RefMut<script::script_thread::Documents>, core::cell::BorrowMutError> @ 0x000070000c2ac128, msg=(data_ptr = "DomRefCell<T> already borrowedassertion failed: thread_state::get().is_script()heap objectheap valueSliced can't have a sliced parentscript::dom::blobcomponents/script/dom/blob.rsFile manager thread is downSomething went wrong...no messageAssertion failed: : timer started: mscomponents/script/dom/cssconditionrule.rscomponents/script/dom/cssrule.rsnot yet implementedIndexSizeErrorHierarchyRequestErrorWrongDocumentErrorInvalidCharacterErrorNoModificationAllowedErrorNotFoundErrorNotSupportedErrorInUseAttributeErrorInvalidStateErrorSyntaxErrorInvalidModificationErrorNamespaceErrorInvalidAccessErrorSecurityErrorNetworkErrorAbortErrorTypeMismatchErrorQuotaExceededErrorTimeoutErrorInvalidNodeTypeErrorDataCloneErrorOperationErrorThe operation failed for an operation-specific reason.The I/O read operation failed.The object can not be cloned.The supplied node is incorrect or has an incorrect ancestor for this operation.The operation timed out.The quota has been exceeded.The given type does not match any expected type.T"..., length = 30)) at result.rs:960:22
    frame #7: 0x0000000101fcbf19 servo`script::dom::bindings::cell::DomRefCell$LT$T$GT$::borrow_mut::h00c20bed5b4174cf(self=0x000070000c2c3dc8) at cell.rs:86:8
    frame #8: 0x00000001037c2978 servo`script::script_thread::ScriptThread::load::h34e69fbd64081a25(self=0x000070000c2c3dc8, metadata=Metadata @ 0x000070000c2adad8, incomplete=InProgressLoad @ 0x000070000c2adc68) at script_thread.rs:3321:8
    frame #9: 0x00000001037bbd02 servo`script::script_thread::ScriptThread::handle_page_headers_available::_$u7b$$u7b$closure$u7d$$u7d$::h67e152432e183980(meta=<unavailable>) at script_thread.rs:2702:36
    frame #10: 0x000000010336f674 servo`core::option::Option$LT$T$GT$::map::hc7a98b1b07d0ea54(self=Option<net_traits::Metadata> @ 0x000070000c2ae808, f=closure-1 @ 0x000070000c2ae998) at option.rs:447:28
    frame #11: 0x00000001037bba2b servo`script::script_thread::ScriptThread::handle_page_headers_available::h1c765d3bb4e1daa0(self=0x000070000c2c3dc8, id=0x000070000c2b12d0, metadata=Option<net_traits::Metadata> @ 0x000070000c2aeab8) at script_thread.rs:2702:16
    frame #12: 0x000000010379d507 servo`script::script_thread::ScriptThread::page_headers_available::_$u7b$$u7b$closure$u7d$$u7d$::h039efdc60a8e6e36(root=0x000000011f8202a8) at script_thread.rs:899:12
    frame #13: 0x0000000103156a8f servo`std::thread::local::LocalKey$LT$T$GT$::try_with::h2f3a90df078263fe(self=0x000000010913a798, f=closure-0 @ 0x000070000c2aef08) at local.rs:262:15
    frame #14: 0x00000001030b08c8 servo`std::thread::local::LocalKey$LT$T$GT$::with::h56e82a3e895d416b(self=0x000000010913a798, f=<unavailable>) at local.rs:239:8
    frame #15: 0x000000010379d408 servo`script::script_thread::ScriptThread::page_headers_available::hb61b471e9bf5871d(id=0x000070000c2b12d0, metadata=<unavailable>) at script_thread.rs:897:8
    frame #16: 0x0000000102f75366 servo`_$LT$script..dom..servoparser..ParserContext$u20$as$u20$net_traits..FetchResponseListener$GT$::process_response::h76238d2e082083a8(self=0x000070000c2b1258, meta_result=Result<net_traits::FetchMetadata, net_traits::NetworkError> @ 0x000070000c2b1500) at mod.rs:765:27
    frame #17: 0x00000001037c9a52 servo`script::script_thread::ScriptThread::start_page_load_about_blank::h265b5084fbc45fc3(self=0x000070000c2c3dc8, incomplete=InProgressLoad @ 0x000070000c2b27d0, js_eval_result=Option<script_traits::JsEvalResult> @ 0x000070000c2b2848) at script_thread.rs:3836:8
    frame #18: 0x00000001037b794c servo`script::script_thread::ScriptThread::handle_new_layout::h2ce3d6ade4ae50f6(self=0x000070000c2c3dc8, new_layout_info=NewLayoutInfo @ 0x000070000c2b2a70, origin=MutableOrigin @ 0x000070000c2b1fc0) at script_thread.rs:2432:12
    frame #19: 0x000000010379e7be servo`script::script_thread::ScriptThread::process_attach_layout::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hfd24f69c9d984b87 at script_thread.rs:1010:24
    frame #20: 0x00000001037a9f51 servo`script::script_thread::ScriptThread::profile_event::h995344777113b9c1(self=0x000070000c2c3dc8, category=AttachLayout, pipeline_id=Option<msg::constellation_msg::PipelineId> @ 0x000070000c2b2c98, f=closure-0 @ 0x000070000c2b31b8) at script_thread.rs:1796:12
    frame #21: 0x000000010379e927 servo`script::script_thread::ScriptThread::process_attach_layout::_$u7b$$u7b$closure$u7d$$u7d$::h29cb0c9f60d022db(root=0x000000011f8202a8) at script_thread.rs:1006:16
    frame #22: 0x00000001031ed69f servo`std::thread::local::LocalKey$LT$T$GT$::try_with::h83745333a6cfe118(self=0x000000010913a798, f=closure-0 @ 0x000070000c2b3568) at local.rs:262:15
    frame #23: 0x00000001030a9501 servo`std::thread::local::LocalKey$LT$T$GT$::with::h47e931090d750b97(self=0x000000010913a798, f=<unavailable>) at local.rs:239:8
    frame #24: 0x000000010379e73c servo`script::script_thread::ScriptThread::process_attach_layout::h37965bbc0230315a(new_layout_info=<unavailable>, origin=MutableOrigin @ 0x000070000c2b36e0) at script_thread.rs:1002:8
    frame #25: 0x0000000101b3fb19 servo`script::dom::htmliframeelement::HTMLIFrameElement::navigate_or_reload_child_browsing_context::h365b4a688b178fc5(self=0x000000012042f200, load_data=LoadData @ 0x000070000c2b4f90, nav_type=InitialAboutBlank, replace=Disabled) at htmliframeelement.rs:212:16
    frame #26: 0x0000000101b40f89 servo`script::dom::htmliframeelement::HTMLIFrameElement::create_nested_browsing_context::h152507f8a31f2333(self=0x000000012042f200) at htmliframeelement.rs:314:8
    frame #27: 0x0000000101b43196 servo`_$LT$script..dom..htmliframeelement..HTMLIFrameElement$u20$as$u20$script..dom..virtualmethods..VirtualMethods$GT$::bind_to_tree::_$u7b$$u7b$closure$u7d$$u7d$::h0878838f1d338777 at htmliframeelement.rs:636:16
    frame #28: 0x0000000102a19bc1 servo`core::ops::function::FnOnce::call_once::h29adc29002f351f1((null)=closure-0 @ 0x000070000c2b51e0, (null)=<unavailable>) at function.rs:227:4
    frame #29: 0x0000000101bae8c8 servo`_$LT$$LT$script..dom..htmliframeelement..HTMLIFrameElement$u20$as$u20$script..dom..virtualmethods..VirtualMethods$GT$..bind_to_tree..IFrameDelayedInitialize$LT$F$GT$$u20$as$u20$script..task..TaskOnce$GT$::run_once::h23ccb6220a771f07(self=<unavailable>) at task.rs:24:16
    frame #30: 0x0000000101b2af20 servo`_$LT$T$u20$as$u20$script..task..TaskBox$GT$::run_box::hef07598f2eeffd59(self=0x000000012041c380) at task.rs:57:8
    frame #31: 0x000000010347a75a servo`script::dom::document::Document::remove_script_and_layout_blocker::h22027db39be24bca(self=0x0000000120452a00) at document.rs:2867:12
    frame #32: 0x0000000102c8b50b servo`script::dom::node::Node::insert::h7dc82c719fe15fd2(node=0x000000012042f200, parent=0x0000000120468780, child=Option<&script::dom::node::Node> @ 0x000070000c2b5510, suppress_observers=Unsuppressed) at node.rs:1970:8
    frame #33: 0x0000000102c8a648 servo`script::dom::node::Node::pre_insert::he69aaac2488b5912(node=0x000000012042f200, parent=0x0000000120468780, child=Option<&script::dom::node::Node> @ 0x000070000c2b59a0) at node.rs:1861:8
    frame #34: 0x0000000102c90310 servo`_$LT$script..dom..node..Node$u20$as$u20$script..dom..bindings..codegen..Bindings..NodeBinding..NodeBinding..NodeMethods$GT$::AppendChild::hf80a77d5011ad07e(self=0x0000000120468780, node=0x000000012042f200) at node.rs:2432:8
    frame #35: 0x00000001020fa805 servo`script::dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::appendChild::_$u7b$$u7b$closure$u7d$$u7d$::h6cd0d1a538270238 at NodeBinding.rs:1713:51
    frame #36: 0x0000000102a2261d servo`core::ops::function::FnOnce::call_once::h400d9386928ee87b((null)=<unavailable>, (null)=<unavailable>) at function.rs:227:4
    frame #37: 0x0000000103915a18 servo`_$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hf3aa8c60b1e34ee3(self=<unavailable>, _args=<unavailable>) at panic.rs:317:8
    frame #38: 0x0000000101232a7d servo`std::panicking::try::do_call::h12a0780f5f0367a1(data="�_+\f") at panicking.rs:287:39
    frame #39: 0x000000010856db8f servo`__rust_maybe_catch_panic at lib.rs:80:7 [opt]
    frame #40: 0x00000001010f7a5b servo`std::panicking::try::h900e20be78706699(f=<unavailable>) at panicking.rs:265:12
    frame #41: 0x00000001039a3b9f servo`std::panic::catch_unwind::h91b72a1bae595ce9(f=<unavailable>) at panic.rs:396:8
    frame #42: 0x00000001022db457 servo`mozjs::panic::wrap_panic::hbd01a22c818edb64(function=<unavailable>, generic_return_type=false) at panic.rs:22:17
    frame #43: 0x00000001020fa455 servo`script::dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::appendChild::h342b3bca30015b42(cx=JSContext @ 0x000070000c2b5fd0, _obj=Handle<*mut mozjs_sys::generated::root::JSObject> @ 0x000070000c2b5fd8, this=0x0000000120468780, args=0x000070000c2b6058) at NodeBinding.rs:1687:11
    frame #44: 0x0000000103ee90a3 servo`::CallJitMethodOp(info=0x00000001090d0880, cx=0x000000011b810a00, thisObj=JS::HandleObject @ 0x000070000c2b60a8, specializedThis=0x0000000120468780, argc=1, vp=0x0000000117925db0) at jsglue.cpp:579:12
    frame #45: 0x000000010279c45a servo`script::dom::bindings::utils::generic_call::h635e65cc3ef5dbe0(cx=0x000000011b810a00, argc=1, vp=0x0000000117925db0, is_lenient=false, call=(servo`::CallJitMethodOp(const JSJitInfo *, JSContext *, JS::HandleObject, void *, uint32_t, JS::Value *) at jsglue.cpp:577)) at utils.rs:501:4
    frame #46: 0x000000010279c53c servo`script::dom::bindings::utils::generic_method::hc9624e8479aabb6b(cx=0x000000011b810a00, argc=1, vp=0x0000000117925db0) at utils.rs:517:4
    frame #47: 0x0000000103f1a2c7 servo`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [inlined] CallJSNative(cx=<unavailable>, native=(servo`script::dom::bindings::utils::generic_method::hc9624e8479aabb6b at utils.rs:512), args=<unavailable>)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) at Interpreter.cpp:442:13 [opt]
    frame #48: 0x0000000103f1a1ef servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b6640, construct=<unavailable>) at Interpreter.cpp:534 [opt]
    frame #49: 0x0000000103f13e43 servo`Interpret(JSContext*, js::RunState&) [inlined] js::CallFromStack(cx=<unavailable>, args=0x0000000117925dc0) at Interpreter.cpp:593:10 [opt]
    frame #50: 0x0000000103f13e3b servo`Interpret(cx=<unavailable>, state=0x000070000c2b6ab0) at Interpreter.cpp:3075 [opt]
    frame #51: 0x0000000103f0a000 servo`js::RunScript(cx=0x000000011b810a00, state=0x000070000c2b6ab0) at Interpreter.cpp:422:10 [opt]
    frame #52: 0x0000000103f1a5b2 servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b6f88, construct=<unavailable>) at Interpreter.cpp:562:13 [opt]
    frame #53: 0x0000000103f1aa66 servo`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x000070000c2b6f88, rval=<unavailable>) at Interpreter.cpp:605:8 [opt]
    frame #54: 0x0000000104018a1a servo`js::fun_apply(cx=0x000000011b810a00, argc=<unavailable>, vp=0x00000001179259f8) at JSFunction.cpp:1180:10 [opt]
    frame #55: 0x0000000103f1a2c7 servo`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [inlined] CallJSNative(cx=<unavailable>, native=(servo`js::fun_apply(JSContext*, unsigned int, JS::Value*) at JSFunction.cpp:1115), args=<unavailable>)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) at Interpreter.cpp:442:13 [opt]
    frame #56: 0x0000000103f1a1ef servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b71f0, construct=<unavailable>) at Interpreter.cpp:534 [opt]
    frame #57: 0x0000000103f13e43 servo`Interpret(JSContext*, js::RunState&) [inlined] js::CallFromStack(cx=<unavailable>, args=0x0000000117925a08) at Interpreter.cpp:593:10 [opt]
    frame #58: 0x0000000103f13e3b servo`Interpret(cx=<unavailable>, state=0x000070000c2b7660) at Interpreter.cpp:3075 [opt]
    frame #59: 0x0000000103f0a000 servo`js::RunScript(cx=0x000000011b810a00, state=0x000070000c2b7660) at Interpreter.cpp:422:10 [opt]
    frame #60: 0x0000000103f1a5b2 servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b77a8, construct=<unavailable>) at Interpreter.cpp:562:13 [opt]
    frame #61: 0x0000000103f1aa66 servo`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x000070000c2b77a8, rval=<unavailable>) at Interpreter.cpp:605:8 [opt]
    frame #62: 0x0000000103f63494 servo`js::PromiseObject::create(cx=0x000000011b810a00, executor=<unavailable>, proto=<unavailable>, needsWrapping=<unavailable>) at Promise.cpp:2198:15 [opt]
    frame #63: 0x0000000103f73aba servo`PromiseConstructor(cx=0x000000011b810a00, argc=<unavailable>, vp=0x0000000117925890) at Promise.cpp:2119:7 [opt]
    frame #64: 0x0000000103f1aed6 servo`InternalConstruct(JSContext*, js::AnyConstructArgs const&) [inlined] CallJSNative(cx=<unavailable>, native=(servo`PromiseConstructor(JSContext*, unsigned int, JS::Value*) at Promise.cpp:2032), args=<unavailable>)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) at Interpreter.cpp:442:13 [opt]
    frame #65: 0x0000000103f1ae8c servo`InternalConstruct(JSContext*, js::AnyConstructArgs const&) [inlined] CallJSNativeConstructor(cx=<unavailable>, native=(servo`PromiseConstructor(JSContext*, unsigned int, JS::Value*) at Promise.cpp:2032), args=<unavailable>)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) at Interpreter.cpp:458 [opt]
    frame #66: 0x0000000103f1ae8c servo`InternalConstruct(cx=0x000000011b810a00, args=0x000070000c2b7a30) at Interpreter.cpp:632 [opt]
    frame #67: 0x0000000103f13dd0 servo`Interpret(JSContext*, js::RunState&) [inlined] js::ConstructFromStack(cx=<unavailable>, args=0x00000001179258a0) at Interpreter.cpp:678:10 [opt]
    frame #68: 0x0000000103f13da0 servo`Interpret(cx=<unavailable>, state=0x000070000c2b7ea0) at Interpreter.cpp:3066 [opt]
    frame #69: 0x0000000103f0a000 servo`js::RunScript(cx=0x000000011b810a00, state=0x000070000c2b7ea0) at Interpreter.cpp:422:10 [opt]
    frame #70: 0x0000000103f1a5b2 servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b7fd8, construct=<unavailable>) at Interpreter.cpp:562:13 [opt]
    frame #71: 0x0000000103f1aa66 servo`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x000070000c2b7fd8, rval=<unavailable>) at Interpreter.cpp:605:8 [opt]
    frame #72: 0x0000000103f766a8 servo`PromiseReactionJob(JSContext*, unsigned int, JS::Value*) [inlined] js::Call(cx=<unavailable>, fval=<unavailable>, thisv=JS::HandleValue @ rbp, arg0=<unavailable>, rval=JS::MutableHandleValue @ r12) at Interpreter.h:98:10 [opt]
    frame #73: 0x0000000103f765f6 servo`PromiseReactionJob(cx=0x000000011b810a00, argc=<unavailable>, vp=0x000070000c2b81b0) at Promise.cpp:1660 [opt]
    frame #74: 0x0000000103f1a2c7 servo`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) [inlined] CallJSNative(cx=<unavailable>, native=(servo`PromiseReactionJob(JSContext*, unsigned int, JS::Value*) at Promise.cpp:1576), args=<unavailable>)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) at Interpreter.cpp:442:13 [opt]
    frame #75: 0x0000000103f1a1ef servo`js::InternalCallOrConstruct(cx=0x000000011b810a00, args=0x000070000c2b8168, construct=<unavailable>) at Interpreter.cpp:534 [opt]
    frame #76: 0x0000000103f1aa66 servo`js::Call(cx=<unavailable>, fval=<unavailable>, thisv=<unavailable>, args=0x000070000c2b8168, rval=<unavailable>) at Interpreter.cpp:605:8 [opt]
    frame #77: 0x00000001041a4403 servo`JS_CallFunctionValue(cx=0x000000011b810a00, obj=<unavailable>, fval=<unavailable>, args=0x0000000108deff10, rval=JS::MutableHandleValue @ r14) at jsapi.cpp:2560:10 [opt]
    frame #78: 0x00000001026900a7 servo`mozjs::rust::wrappers::JS_CallFunctionValue::h8000c6004d6baca4(cx=0x000000011b810a00, obj=Handle<*mut mozjs_sys::generated::root::JSObject> @ 0x000070000c2b8250, fval=Handle<mozjs_sys::generated::root::JS::Value> @ 0x000070000c2b8258, args=0x0000000108deff10, rval=MutableHandle<mozjs_sys::generated::root::JS::Value> @ 0x000070000c2b8268) at rust.rs:1368:50
    frame #79: 0x0000000103049e02 servo`script::dom::bindings::codegen::Bindings::PromiseBinding::PromiseJobCallback::Call::h119fcd590669c5f9(self=0x0000000120415840, cx=JSContext @ 0x000070000c2b8350, aThisObj=Handle<*mut mozjs_sys::generated::root::JSObject> @ 0x000070000c2b8358) at PromiseBinding.rs:305:17
    frame #80: 0x0000000103049a37 servo`script::dom::bindings::codegen::Bindings::PromiseBinding::PromiseJobCallback::Call_::hcd3455ec6aa2abca(self=0x0000000120415840, thisObj=0x000000012046b000, aExceptionHandling=Report) at PromiseBinding.rs:289:17
    frame #81: 0x0000000102cb5ac2 servo`script::microtask::MicrotaskQueue::checkpoint::h2cfdee2fb17eb061(self=0x0000000120422050, cx=JSContext @ 0x000070000c2b8738, target_provider=closure-0 @ 0x000070000c2b8740, globalscopes=Vec<script::dom::bindings::root::Root<script::dom::bindings::root::Dom<script::dom::globalscope::GlobalScope>>> @ 0x000070000c2b89c8) at microtask.rs:95:36
    frame #82: 0x0000000101d98715 servo`script::dom::globalscope::GlobalScope::perform_a_microtask_checkpoint::h78c5a93a30fd6a6d(self=0x000000012046b000) at globalscope.rs:1171:8
    frame #83: 0x000000010345169c servo`_$LT$script..dom..bindings..settings_stack..AutoEntryScript$u20$as$u20$core..ops..drop..Drop$GT$::drop::h86df7fc0a418ed3a(self=0x000070000c2b8ab0) at settings_stack.rs:80:12
    frame #84: 0x0000000102ab5315 servo`core::ptr::real_drop_in_place::h5c7de40a854f1962((null)=0x000070000c2b8ab0) at mod.rs:175
    frame #85: 0x0000000102652ee9 servo`core::mem::drop::h9ec4862f43f20c57(_x=AutoEntryScript @ 0x000070000c2b8ab0) at mod.rs:704:24
    frame #86: 0x00000001015e6188 servo`_$LT$script..dom..bindings..callback..CallSetup$u20$as$u20$core..ops..drop..Drop$GT$::drop::h98aa2c36bd507797(self=0x000070000c2b8c40) at callback.rs:280:12
    frame #87: 0x0000000102b13485 servo`core::ptr::real_drop_in_place::hcff10f47d194db97((null)=0x000070000c2b8c40) at mod.rs:175
    frame #88: 0x000000010209dbd3 servo`script::dom::bindings::codegen::Bindings::EventListenerBinding::EventListener::HandleEvent_::hbd88da880815b5cc(self=0x0000000120415810, thisObj=0x000000012046b000, event=0x0000000120613050, aExceptionHandling=Report) at EventListenerBinding.rs:291:4
    frame #89: 0x0000000101b36b1d servo`script::dom::eventtarget::CompiledEventListener::call_or_handle_event::h4d0a68e19380b10b(self=0x000000012041c2e0, object=0x000000012046b000, event=0x0000000120613050, exception_handle=Report) at eventtarget.rs:163:24
    frame #90: 0x0000000101613370 servo`script::dom::event::inner_invoke::h1b4313b17ff9ebed(window=Option<&script::dom::window::Window> @ 0x000070000c2b93f8, object=0x000000012046b000, event=0x0000000120613050, listeners=(data_ptr = 0x000000012041c2e0, length = 1)) at event.rs:584:8
    frame #91: 0x000000010161316f servo`script::dom::event::invoke::h44239ab45aa5a995(window=Option<&script::dom::window::Window> @ 0x000070000c2b95b8, object=0x000000012046b000, event=0x0000000120613050, specific_listener_phase=Option<script::dom::eventtarget::ListenerPhase> @ 0x000070000c2b95d7) at event.rs:554:4
    frame #92: 0x0000000101612d83 servo`script::dom::event::dispatch_to_listeners::hc2d201fd575979d1(event=0x0000000120613050, target=0x000000012046b000, event_path=&[&script::dom::eventtarget::EventTarget] @ 0x000070000c2b96e8) at event.rs:509:4
    frame #93: 0x0000000101611a8c servo`script::dom::event::Event::dispatch::h0e812ef493df0fb8(self=0x0000000120613050, target=0x000000012046b000, target_override=Option<&script::dom::eventtarget::EventTarget> @ 0x000070000c2b9898) at event.rs:177:8
    frame #94: 0x0000000101b387cc servo`script::dom::eventtarget::EventTarget::dispatch_event::h9be6d830737748c5(self=0x000000012046b000, event=0x0000000120613050) at eventtarget.rs:382:8
    frame #95: 0x0000000101611feb servo`script::dom::event::Event::fire::h4fd9f4aec30e37b6(self=0x0000000120613050, target=0x000000012046b000) at event.rs:246:8
    frame #96: 0x000000010378bddc servo`script::dom::popstateevent::PopStateEvent::dispatch_jsval::hfe77e6f3c7d8aa3d(target=0x000000012046b000, window=0x000000012046b000, state=Handle<mozjs_sys::generated::root::JS::Value> @ 0x000070000c2b9b38) at popstateevent.rs:80:8
    frame #97: 0x0000000102f62733 servo`script::dom::history::History::activate_state::h1257f0c97273d0e0(self=0x000000012041c0c0, state_id=Option<msg::constellation_msg::HistoryStateId> @ 0x000070000c2b9d38, url=ServoUrl @ 0x000070000c2b9d40) at history.rs:138:12
    frame #98: 0x00000001037bad7f servo`script::script_thread::ScriptThread::handle_update_history_state_msg::hb2f18ebc2f70d725(self=0x000070000c2c3dc8, pipeline_id=PipelineId @ 0x000070000c2ba3c8, history_state_id=Option<msg::constellation_msg::HistoryStateId> @ 0x000070000c2ba3d0, url=ServoUrl @ 0x000070000c2ba3d8) at script_thread.rs:2629:28
    frame #99: 0x00000001037ac3a6 servo`script::script_thread::ScriptThread::handle_msg_from_constellation::h6546e22662e67803(self=0x000070000c2c3dc8, msg=ConstellationControlMsg @ 0x000070000c2bc248) at script_thread.rs:1899:16
    frame #100: 0x00000001037a6cc8 servo`script::script_thread::ScriptThread::handle_msgs::_$u7b$$u7b$closure$u7d$$u7d$::h7e793689a2ed6041 at script_thread.rs:1553:52
    frame #101: 0x00000001037a96b1 servo`script::script_thread::ScriptThread::profile_event::h7f240b7dc49e032f(self=0x000070000c2c3dc8, category=ConstellationMsg, pipeline_id=Option<msg::constellation_msg::PipelineId> @ 0x000070000c2bc808, f=closure-5 @ 0x000070000c2c3368) at script_thread.rs:1796:12
    frame #102: 0x00000001037a4f3f servo`script::script_thread::ScriptThread::handle_msgs::h3b7d723c7953456b(self=0x000070000c2c3dc8) at script_thread.rs:1547:25
    frame #103: 0x00000001037a29d0 servo`script::script_thread::ScriptThread::start::h32b99fbb711d7063(self=0x000070000c2c3dc8) at script_thread.rs:1380:14
    frame #104: 0x000000010379c165 servo`_$LT$script..script_thread..ScriptThread$u20$as$u20$script_traits..ScriptThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h85128add9e7c06ac at script_thread.rs:806:24
    frame #105: 0x0000000101958747 servo`profile_traits::mem::ProfilerChan::run_with_memory_reporting::hcc56b881d1e16102(self=0x000070000c2c3dac, f=closure-1 @ 0x000070000c2c3b50, reporter_name=String @ 0x000070000c2c47c0, channel_for_reporter=(flavor = crossbeam_channel::channel::SenderFlavor<script::script_thread::MainThreadScriptMsg> @ 0x000070000c2c3b58), msg=(0x000070000c2c4798)) at mem.rs:88:8
    frame #106: 0x000000010379c8bf servo`_$LT$script..script_thread..ScriptThread$u20$as$u20$script_traits..ScriptThreadFactory$GT$::create::_$u7b$$u7b$closure$u7d$$u7d$::h1e0d2f0ce2883d1b at script_thread.rs:804:16
    frame #107: 0x00000001029db253 servo`std::sys_common::backtrace::__rust_begin_short_backtrace::h20dda760f1d4fe99(f=<unavailable>) at backtrace.rs:129:4
    frame #108: 0x0000000101be0d23 servo`std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h63fc9159fc373aee at mod.rs:469:16
    frame #109: 0x000000010390a3d3 servo`_$LT$std..panic..AssertUnwindSafe$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$$LP$$RP$$GT$$GT$::call_once::hd1a501a9c10f89f9(self=<unavailable>, _args=<unavailable>) at panic.rs:317:8
    frame #110: 0x00000001012bd3e8 servo`std::panicking::try::do_call::he8328702a6df0b1b(data="�;N\"\x01") at panicking.rs:287:39
    frame #111: 0x000000010856db8f servo`__rust_maybe_catch_panic at lib.rs:80:7 [opt]
    frame #112: 0x0000000100ff7f6d servo`std::panicking::try::h2fb7eeba856d631a(f=<unavailable>) at panicking.rs:265:12
    frame #113: 0x000000010397f303 servo`std::panic::catch_unwind::h2485a7bbdc859730(f=<unavailable>) at panic.rs:396:8
    frame #114: 0x0000000101bdedac servo`std::thread::Builder::spawn_unchecked::_$u7b$$u7b$closure$u7d$$u7d$::h152ebb7e160312f5 at mod.rs:468:29
    frame #115: 0x0000000102a0a605 servo`core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h9863518b75c33b60((null)=0x000070000c2c6bd0, (null)=<unavailable>) at function.rs:227:4
    frame #116: 0x000000010855594e servo`_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h451350fe5ca962e7 at boxed.rs:942:8 [opt]
    frame #117: 0x000000010856d08e servo`std::sys::unix::thread::Thread::new::thread_start::h8c88901f676bf5f7 [inlined] _$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h5352f447bed7574e at boxed.rs:942:8 [opt]
    frame #118: 0x000000010856d082 servo`std::sys::unix::thread::Thread::new::thread_start::h8c88901f676bf5f7 [inlined] std::sys_common::thread::start_thread::he032f51b322641da at thread.rs:13 [opt]
    frame #119: 0x000000010856d00e servo`std::sys::unix::thread::Thread::new::thread_start::h8c88901f676bf5f7 at thread.rs:79 [opt]
    frame #120: 0x00007fff5a0462eb libsystem_pthread.dylib`_pthread_body + 126
    frame #121: 0x00007fff5a049249 libsystem_pthread.dylib`_pthread_start + 66
    frame #122: 0x00007fff5a04540d libsystem_pthread.dylib`thread_start + 13
@jdm
Copy link
Member Author

@jdm jdm commented Nov 13, 2019

This is panicking on borrowing ScriptThread::documents. Should be a fun hunt through the call stack to figure out where we previously borrowed it.

@jdm
Copy link
Member Author

@jdm jdm commented Nov 13, 2019

The most likely candidate is ScriptThread::handle_update_history_state_msg, but I don't see a smoking gun. Surround the self.documents.borrow() with {} is supposed to avoid the borrowing problem.

@jdm jdm mentioned this issue Nov 14, 2019
4 of 4 tasks complete
bors-servo added a commit that referenced this issue Nov 14, 2019
Reduce unnecesarily large borrow in script thread

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24730
- [x] There are tests for these changes
bors-servo added a commit that referenced this issue Nov 15, 2019
Reduce unnecesarily large borrow in script thread

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24730
- [x] There are tests for these changes
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.