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

Assertion failure self.get_pending_parsing_blocking_script().is_none() || script.is_none() #11733

Closed
cbrewster opened this issue Jun 12, 2016 · 4 comments

Comments

@cbrewster
Copy link
Member

@cbrewster cbrewster commented Jun 12, 2016

Run: ./mach run -d http://www.robinwieruch.de/the-soundcloud-client-in-react-redux/

ERROR:constellation::constellation: Panic: assertion failed: self.get_pending_parsing_blocking_script().is_none() || script.is_none()
ERROR:constellation::constellation: Backtrace:
frame #0  - 0x0000000110a17120 - backtrace::backtrace::trace::hccde8df28b4db2a2
frame #1  - 0x0000000110a16fca - backtrace::capture::Backtrace::new::h42f95930bb8c5ee8
frame #2  - 0x000000010f844075 - util::thread::spawn_named_with_send_on_panic::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hcdef76f7bd2e69e9
frame #3  - 0x000000010f844670 - extern $u22$rust.call$u22$$u20$fn$LP$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$47$C$$u20$node.$u20$DefIndex$LP$2393$RP$$u20$$u7d$$u20$0.ipc_channel..ipc..IpcSender$LT$$LP$core..option..Option$LT$msg..constellation_msg..PipelineId$GT$$C$$u20$std..string..String$C$$u20$std..string..String$RP$$GT$$C$$u20$1.core..option..Option$LT$msg..constellation_msg..PipelineId$GT$$u5d$$C$$u20$$LP$$RF$core..any..Any$C$$RP$$RP$::once_shim.191684::hc9bbdd66b2ae9c80
frame #4  - 0x000000010f84461c - _<F as alloc..boxed..FnBox<A>>::call_box::hdbcdd643ee67aa9c
frame #5  - 0x00000001109c03cf - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hddf831bcfa835e79
frame #6  - 0x00000001109bffd3 - _<std..thread..local..LocalKey<T>>::with::h49e68c592f601e39
frame #7  - 0x00000001109bfe26 - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h0fcde37d4d058867
frame #8  - 0x0000000110d00d64 - std::panicking::rust_panic_with_hook::h983af77c1a2e581b
frame #9  - 0x000000010ebdb2e7 - std::panicking::begin_panic::h0bf39f6d43ab9349
frame #10 - 0x000000010f452d54 - script::dom::document::Document::set_pending_parsing_blocking_script::h72ebe74ae81b081f
frame #11 - 0x000000010f5f53c8 - script::dom::htmlscriptelement::HTMLScriptElement::prepare::h944c8c8a0ea41891
frame #12 - 0x000000010f6c42f7 - script::parse::html::_<impl html5ever..tree_builder..interface..TreeSink for script..dom..servohtmlparser..Sink>::complete_script::hffc11d06fff5906f
frame #13 - 0x000000010f6a88e0 - _<html5ever..tree_builder..TreeBuilder<Handle, Sink> as html5ever..tree_builder..rules..TreeBuilderStep>::step::hca68e2bc2432aa52
frame #14 - 0x000000010f68e924 - _<html5ever..tree_builder..TreeBuilder<Handle, Sink>>::process_to_completion::h2faf0c83b88df088
frame #15 - 0x000000010f68a2cc - _<html5ever..tree_builder..TreeBuilder<Handle, Sink> as html5ever..tokenizer..interface..TokenSink>::process_token::he45af09b32dfea6d
frame #16 - 0x000000010f68949d - _<html5ever..tokenizer..Tokenizer<Sink>>::process_token::hf3778c2010ac92bf
frame #17 - 0x000000010f6d7aa9 - _<html5ever..tokenizer..Tokenizer<Sink>>::emit_current_tag::h7e260b3f099be738
frame #18 - 0x000000010f6cef0a - _<html5ever..tokenizer..Tokenizer<Sink>>::step::hc800f3fb49ad6b84
frame #19 - 0x000000010f6cb0f3 - _<html5ever..tokenizer..Tokenizer<Sink>>::run::ha80cf9bcfaf349a8
frame #20 - 0x000000010f6ebdf4 - script::dom::servohtmlparser::ServoHTMLParser::do_parse_sync::h7868138b6419f7a1
frame #21 - 0x000000010f6ebb97 - script::dom::servohtmlparser::ServoHTMLParser::parse_sync::_$u7b$$u7b$closure$u7d$$u7d$::h0ebcb12addb25692
frame #22 - 0x000000010f6eba7f - profile_traits::time::profile::h1a1eac59628cb425
frame #23 - 0x000000010f6847f6 - script::dom::servohtmlparser::ServoHTMLParser::parse_sync::ha88022f6608066ce
frame #24 - 0x000000010f6ec5fa - script::dom::servohtmlparser::ServoHTMLParser::resume::h5537b3f413e82f15
frame #25 - 0x000000010f457604 - script::parse::ParserRef::resume::he80e04c197ee93fd
frame #26 - 0x000000010ec81690 - script::dom::document::Document::finish_load::h13371ea3d4ab55e4
frame #27 - 0x000000010f5f233c - _<script..dom..htmlscriptelement..ScriptContext as net_traits..AsyncResponseListener>::response_complete::h8b6124ed78c481e9
frame #28 - 0x0000000110287215 - net_traits::ResponseAction::process::hedeb8786331fefcc
frame #29 - 0x000000010f5f9066 - _<script..network_listener..ListenerRunnable<T> as script..script_thread..Runnable>::handler::ha5a5c643cf11f4e8
frame #30 - 0x000000010f85b00c - script::script_thread::ScriptThread::handle_msg_from_script::h6a6b4ae37d32650d
frame #31 - 0x000000010f8e9118 - script::script_thread::ScriptThread::handle_msgs::_$u7b$$u7b$closure$u7d$$u7d$::hdfba591677ee0854
frame #32 - 0x000000010f8e8c85 - script::script_thread::ScriptThread::profile_event::h180ff2036b8c2783
frame #33 - 0x000000010f8b90db - script::script_thread::ScriptThread::handle_msgs::h45a47f1f1786f911
frame #34 - 0x000000010f8585fc - script::script_thread::ScriptThread::start::hf0f02e16b9da3912
frame #35 - 0x000000010f8585ab - _<script..script_thread..ScriptThread as script_traits..ScriptThreadFactory>::create::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hb106c460c5297919
frame #36 - 0x000000010f858301 - profile_traits::mem::ProfilerChan::run_with_memory_reporting::h90164fdc02bc9ddf
frame #37 - 0x000000010f844d96 - _<script..script_thread..ScriptThread as script_traits..ScriptThreadFactory>::create::_$u7b$$u7b$closure$u7d$$u7d$::h3f833182b51a6573
frame #38 - 0x000000010f84342e - util::thread::spawn_named_with_send_on_panic::_$u7b$$u7b$closure$u7d$$u7d$::h8444e95fb5b3a49b
frame #39 - 0x000000010f8431e7 - _<std..panic..AssertUnwindSafe<F> as core..ops..FnOnce<()>>::call_once::hcfab80e1e643709e
frame #40 - 0x000000010f84313b - std::panicking::try::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h5096e88519db480e
frame #41 - 0x000000010f8439f4 - std::panicking::try::call::h050129f436c26836
frame #42 - 0x0000000110d1ca2b - __rust_try
frame #43 - 0x0000000110d1c9c5 - __rust_maybe_catch_panic
frame #44 - 0x000000010f84308d - std::panicking::try::_$u7b$$u7b$closure$u7d$$u7d$::hbe4ce1d0ed5283dc
frame #45 - 0x000000010f842fdf - _<std..thread..local..LocalKey<T>>::with::he2ddd4f1ae360bd1
frame #46 - 0x000000010f842e0f - std::panicking::try::h658821b100ed0f40
frame #47 - 0x000000010f842cee - std::panic::catch_unwind::hca6edbb3b9e41acb
frame #48 - 0x000000010f842b4c - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::h2033c44455cf8048
frame #49 - 0x000000010f843bf7 - _<F as alloc..boxed..FnBox<A>>::call_box::h3d739ebefef9fe99
frame #50 - 0x0000000110d184a8 - std::sys::thread::Thread::new::thread_start::h9c883b6d445ece46
frame #51 - 0x00007fff9486599c - _pthread_body
frame #52 - 0x00007fff94865919 - _pthread_start

ERROR:constellation::constellation: Panic: called `Result::unwrap()` on an `Err` value: Error { repr: Custom(Custom { kind: Other, error: StringError("MPSC send failed") }) }
ERROR:constellation::constellation: Backtrace skipped (run with -Z full-backtraces to see every backtrace).
ERROR:constellation::constellation: Panic: called `Result::unwrap()` on an `Err` value: Error { repr: Custom(Custom { kind: Other, error: StringError("MPSC send failed") }) }
ERROR:constellation::constellation: Backtrace skipped (run with -Z full-backtraces to see every backtrace).
ERROR:constellation::constellation: Panic: called `Result::unwrap()` on an `Err` value: Error { repr: Custom(Custom { kind: Other, error: StringError("MPSC send failed") }) }
ERROR:constellation::constellation: Backtrace skipped (run with -Z full-backtraces to see every backtrace).
ERROR:constellation::constellation: Panic: called `Result::unwrap()` on an `Err` value: "SendError(..)"
ERROR:constellation::constellation: Backtrace skipped (run with -Z full-backtraces to see every backtrace).
@Ms2ger
Copy link
Contributor

@Ms2ger Ms2ger commented Jun 12, 2016

I suspect this is a symptom of servo/html5ever#198

@jdm
Copy link
Member

@jdm jdm commented Jun 12, 2016

The assertion is being triggered because we have a script element network load being completed, which invokes the parser, which encounters another script tag. Presumably the pending parsing blocking script hasn't been reset before we begin parsing.

@jdm
Copy link
Member

@jdm jdm commented Jun 12, 2016

Alternatively, perhaps the pending parser blocking script is a different one than the script that's being executed. I really want better documentation for what parts of the spec Document::finish_load is attempting to implement.

@cbrewster
Copy link
Member Author

@cbrewster cbrewster commented Jan 14, 2017

I can no longer reproduce this.

@cbrewster cbrewster closed this Jan 14, 2017
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
3 participants
You can’t perform that action at this time.