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

Spawn a thread for WebSocket messages. #6635

Merged
merged 4 commits into from Jul 22, 2015
Merged

Spawn a thread for WebSocket messages. #6635

merged 4 commits into from Jul 22, 2015

Conversation

@Ms2ger
Copy link
Contributor

Ms2ger commented Jul 15, 2015

Review on Reviewable

@hoppipolla-critic-bot
Copy link

hoppipolla-critic-bot commented Jul 15, 2015

Critic review: https://critic.hoppipolla.co.uk/r/5561

This is an external review system which you may optionally use for the code review of your pull request.

In order to help critic track your changes, please do not make in-place history rewrites (e.g. via git rebase -i or git commit --amend) when updating this pull request.

@jdm
Copy link
Member

jdm commented Jul 15, 2015

@bors-servo: r+
-S-awaiting-review +S-awaiting-merge


Reviewed 1 of 1 files at r1, 1 of 1 files at r2, 1 of 1 files at r3, 1 of 1 files at r4.
Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.


Comments from the review on Reviewable.io

@bors-servo
Copy link
Contributor

bors-servo commented Jul 15, 2015

📌 Commit 7d42435 has been approved by jdm

@bors-servo
Copy link
Contributor

bors-servo commented Jul 15, 2015

Testing commit 7d42435 with merge 478c05c...

bors-servo pushed a commit that referenced this pull request Jul 15, 2015
Spawn a thread for WebSocket messages.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6635)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Jul 15, 2015

💔 Test failed - mac1

@Ms2ger
Copy link
Contributor Author

Ms2ger commented Jul 16, 2015

@bors-servo r=jdm

I swear I fixed that…

@bors-servo
Copy link
Contributor

bors-servo commented Jul 16, 2015

📌 Commit 617b901 has been approved by jdm

@bors-servo
Copy link
Contributor

bors-servo commented Jul 16, 2015

Testing commit 617b901 with merge c50199e...

bors-servo pushed a commit that referenced this pull request Jul 16, 2015
Spawn a thread for WebSocket messages.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6635)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Jul 16, 2015

💔 Test failed - mac1

@jdm
Copy link
Member

jdm commented Jul 16, 2015

One case of #6350, one non-websocket timeout that is a mystery to me, and one error that looks like a legitimate failure that needs correcting:

15:01.70 TEST_START: Thread-TestrunnerManager-1 /websockets/interfaces/WebSocket/events/019.html
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) Full command: /Users/servo/buildbot/slave/mac1/build/target/debug/servo --cpu --hard-fail -u Servo/wptrunner -z http://localhost:8000/websockets/interfaces/WebSocket/events/019.html
(pid:48616) "thread 'ScriptTask PipelineId(0)' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:362"
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "stack backtrace:"
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   1:        0x10c26ec65 - sys::backtrace::write::hde88a3e3a343e9f8zms"
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   2:        0x10c272255 - panicking::on_panic::h8c73c8f1e33f6d60hIw"
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   3:        0x10c25fd42 - rt::unwind::begin_unwind_inner::h781ff1cd39e7f47etqw"
15:01.87 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   4:        0x10c2603a9 - rt::unwind::begin_unwind_fmt::h9c0f8818a5804071zpw"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   5:        0x10c271c2c - rust_begin_unwind"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   6:        0x10c29ab55 - panicking::panic_fmt::h205f328075c6fc3cneC"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   7:        0x10c297601 - panicking::panic::habb48a185771b51cUcC"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   8:        0x10af3ba90 - option::Option<T>::unwrap::h6043677849892057784"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "   9:        0x10abd3727 - dom::websocket::_&'a WebSocket.WebSocketMethods::Send::h03791cbfb55bd346qDS"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  10:        0x10abd2d96 - dom::websocket::_&'a WebSocket.WebSocketMethods::Close::hd0d55f9f817321caDES"
15:01.88 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  11:        0x10abd278f - dom::bindings::codegen::Bindings::WebSocketBinding::close::__rust_abi"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  12:        0x10abd24dd - dom::bindings::codegen::Bindings::WebSocketBinding::close::hef290df85ca113cfub2"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  13:        0x10c2a4050 - CallJitMethodOp"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  14:        0x10a7f7045 - dom::bindings::utils::generic_call::h878fc45d393e9405nnc"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  15:        0x10a7f73e0 - dom::bindings::utils::generic_method::__rust_abi"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  16:        0x10a7f7387 - dom::bindings::utils::generic_method::h76f0228a7ed38da2Fqc"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  17:        0x10b18b664 - _ZN2js6InvokeEP9JSContextN2JS8CallArgsENS_14MaybeConstructE"
15:01.89 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  18:        0x10b19bbc9 - _ZL9InterpretP9JSContextRN2js8RunStateE"
15:01.90 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  19:        0x10b192e99 - _ZN2js9RunScriptEP9JSContextRNS_8RunStateE"
15:01.90 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  20:        0x10b18b859 - _ZN2js6InvokeEP9JSContextN2JS8CallArgsENS_14MaybeConstructE"
15:01.90 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  21:        0x10b4de7ed - _ZN2js9fun_applyEP9JSContextjPN2JS5ValueE"
15:01.90 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  22:        0x10b18b664 - _ZN2js6InvokeEP9JSContextN2JS8CallArgsENS_14MaybeConstructE"
15:01.90 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  23:        0x10b19bbc9 - _ZL9InterpretP9JSContextRN2js8RunStateE"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  24:        0x10b192e99 - _ZN2js9RunScriptEP9JSContextRNS_8RunStateE"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  25:        0x10b1a1356 - _ZN2js13ExecuteKernelEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectRKNS2_5ValueENS_11ExecuteTypeENS_16AbstractFramePtrEPS9_"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  26:        0x10b1a1483 - _ZN2js7ExecuteEP9JSContextN2JS6HandleIP8JSScriptEER8JSObjectPNS2_5ValueE"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  27:        0x10b4a5572 - _ZL8EvaluateP9JSContextN2JS6HandleIP8JSObjectEERKNS1_22ReadOnlyCompileOptionsERNS1_18SourceBufferHolderENS1_13MutableHandleINS1_5ValueEEE"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  28:        0x10b4a56da - _ZN2JS8EvaluateEP9JSContextRKNS_22ReadOnlyCompileOptionsEPKDsmNS_13MutableHandleINS_5ValueEEE"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  29:        0x10b073d0f - jsapi::Evaluate2::__rust_abi"
15:01.91 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  30:        0x10b073c89 - jsapi::Evaluate2::h6576ba7146b16b67OIi"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  31:        0x10ae295ad - dom::window::_&'a T.ScriptHelpers::evaluate_script_on_global_with_result::h7554893041414584436"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  32:        0x10ae2068e - dom::htmlscriptelement::_&'a HTMLScriptElement.HTMLScriptElementHelpers::execute::hae410c9c10f669c9acH"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  33:        0x10ae232c1 - dom::htmlscriptelement::_&'a HTMLScriptElement.HTMLScriptElementHelpers::prepare::h996cb1125698cfc7C3G"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  34:        0x10ae9f91d - parse::html::servohtmlparser..Sink.TreeSink::complete_script::h51a24e86e8b113ebEoX"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  35:        0x10ae8448e - tree_builder::rules::super..TreeBuilder<Handle, Sink>.TreeBuilderStep::step::h1192819384848499682"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  36:        0x10ae6d39e - tree_builder::TreeBuilder<Handle, Sink>::process_to_completion::h17075506215666171488"
15:01.92 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  37:        0x10ae68289 - tree_builder::TreeBuilder<Handle, Sink>.TokenSink::process_token::h4927577327723219976"
15:01.93 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  38:        0x10ae672b0 - tokenizer::Tokenizer<Sink>::process_token::h655886399289278711"
15:01.93 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  39:        0x10aeb3175 - tokenizer::Tokenizer<Sink>::emit_current_tag::h8887098112549136038"
15:01.93 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  40:        0x10aeaa466 - tokenizer::Tokenizer<Sink>::step::h13239958296054736227"
15:01.93 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  41:        0x10aea7255 - tokenizer::Tokenizer<Sink>::run::h3738838906055364041"
15:01.93 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  42:        0x10ae618cb - dom::servohtmlparser::_&'a ServoHTMLParser.PrivateServoHTMLParserHelpers::parse_sync::hb1817cbf52ba538aDeP"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  43:        0x10ae20bdf - dom::servohtmlparser::_&'a ServoHTMLParser.ServoHTMLParserHelpers::resume::h5abea7093544e142fhP"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  44:        0x10ae1e8b3 - dom::htmlscriptelement::ScriptContext.AsyncResponseListener::response_complete::h6ffe9fa97cbfdb2a11G"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  45:        0x10b8ee702 - ResponseAction::process::he612ebd98a1dadf5jPa"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  46:        0x10ae2806e - network_listener::ListenerRunnable<T>.Runnable::handler::h12486591868782607285"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  47:        0x10afd11dc - script_task::ScriptTask::handle_msg_from_script::h5f0618f362711ba78EY"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  48:        0x10afd4f28 - script_task::ScriptTask::handle_msgs::h2c60cf218d57dd95YsY"
15:01.94 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  49:        0x10afcef71 - script_task::ScriptTask::start::h7afd6973d2d75286OsY"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  50:        0x10afca575 - script_task::ScriptTask.ScriptTaskFactory::create::closure.132711"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  51:        0x10afc97d4 - task::spawn_named_with_send_on_failure::closure.132705"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  52:        0x10afc96f4 - boxed::F.FnBox<A>::call_box::h18236185491602503959"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  53:        0x10a77c9a0 - boxed::Box<FnBox<A, Output $u3d$$u20$R$GT$$u2b$$u20$Send$u20$$u2b$$u20$$u27$a$GT$.FnOnce$LT$A$GT$::call_once::h14130297459921666521"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  54:        0x10a77c412 - thread::Builder::spawn_inner::closure.96289"
15:01.95 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  55:        0x10a77c38e - rt::unwind::try::try_fn::__rust_abi::h17338521316588998506"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  56:        0x10a77c329 - rt::unwind::try::try_fn::h17338521316588998506"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  57:        0x10c273c58 - rust_try_inner"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  58:        0x10c273c45 - rust_try"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  59:        0x10c26d205 - rt::unwind::try::inner_try::h9e58480e93edc0cdmmw"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  60:        0x10a77c288 - rt::unwind::try::h18248039592331279522"
15:01.96 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  61:        0x10a77c0c1 - thread::Builder::spawn_inner::closure.96238"
15:01.97 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  62:        0x10a77cd2d - boxed::F.FnBox<A>::call_box::h12885877566890309609"
15:01.97 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  63:        0x10c270c1d - sys::thread::Thread::new::thread_start::hf153915745363fa7wKv"
15:01.97 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  64:     0x7fff8eab8267 - _pthread_body"
15:01.97 PROCESS_OUTPUT: Thread-TestrunnerManager-1 (pid:48616) "  65:     0x7fff8eab81e4 - _pthread_start"
@Ms2ger Ms2ger force-pushed the Ms2ger:ws-task branch from 617b901 to 371dd3f Jul 16, 2015
@jdm
Copy link
Member

jdm commented Jul 16, 2015

@bors-servo
Copy link
Contributor

bors-servo commented Jul 16, 2015

📌 Commit 371dd3f has been approved by jdm

@Ms2ger Ms2ger force-pushed the Ms2ger:ws-task branch from 371dd3f to f7cafb3 Jul 16, 2015
@larsbergstrom
Copy link
Contributor

larsbergstrom commented Jul 17, 2015

Hrm... "when is a file not a file?"

servo-mac2:~ servo$ sysctl -a | grep somax
kern.ipc.somaxconn: 128

WHEN IT'S A SOCKET!

Something else to try...

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Jul 17, 2015

@bors-servo: retry

@bors-servo
Copy link
Contributor

bors-servo commented Jul 17, 2015

Previous build results for android, gonk, linux1, linux2, linux3, mac2, mac3 are reusable. Rebuilding only mac1...

@bors-servo
Copy link
Contributor

bors-servo commented Jul 17, 2015

💔 Test failed - mac1

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Jul 17, 2015

Curses; foiled again...

@larsbergstrom
Copy link
Contributor

larsbergstrom commented Jul 17, 2015

OK, I suspect we're going to have to actually fix the problem that's causing us to open so many handles instead of just patching over it.

@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

The latest upstream changes (presumably #6694) made this pull request unmergeable. Please resolve the merge conflicts.

@jdm jdm added S-needs-rebase and removed S-awaiting-merge labels Jul 22, 2015
Ms2ger added 4 commits Jul 15, 2015
There's no real reason to have internal dynamic dispatch inside a trait
object.
The receiver will be used from another thread than the WebSocket object in
the future.
This needs to happen off a task because we won't be able to access the
WebSocket object directly once this code moves to a background thread.

There is no behaviour change, because we make sure that self.ready_state is
not Connecting in Send().
@Ms2ger Ms2ger force-pushed the Ms2ger:ws-task branch from f7cafb3 to 32ddd35 Jul 22, 2015
@Ms2ger
Copy link
Contributor Author

Ms2ger commented Jul 22, 2015

@bors-servo r=jdm

@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

📌 Commit 32ddd35 has been approved by jdm

@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

Testing commit 32ddd35 with merge 14d081c...

bors-servo pushed a commit that referenced this pull request Jul 22, 2015
Spawn a thread for WebSocket messages.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6635)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

💔 Test failed - linux2

@jdm
Copy link
Member

jdm commented Jul 22, 2015

@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

Testing commit 32ddd35 with merge 6fd3186...

bors-servo pushed a commit that referenced this pull request Jul 22, 2015
bors-servo
Spawn a thread for WebSocket messages.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6635)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Jul 22, 2015

☀️ Test successful - android, gonk, linux1, linux2, linux3, mac1, mac2, mac3

@bors-servo bors-servo merged commit 32ddd35 into servo:master Jul 22, 2015
2 checks passed
2 checks passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details
@Ms2ger Ms2ger deleted the Ms2ger:ws-task branch Jul 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

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