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

compositing: Split Servo up into multiple sandboxed processes. #6884

Closed
wants to merge 2 commits into from

Conversation

@pcwalton
Copy link
Contributor

pcwalton commented Aug 1, 2015

Multiprocess mode is enabled with the -M switch, and sandboxing is
enabled with the -S switch.

r? @metajack

Review on Reviewable

@highfive
Copy link

highfive commented Aug 1, 2015

warning Warning warning

  • These commits modify unsafe code. Please review it carefully!
@pcwalton
Copy link
Contributor Author

pcwalton commented Aug 1, 2015

Note that the processes don't shut down properly yet, for multiple reasons: shutdown channels aren't wired up yet and we don't wait on children, so they become zombies. But I didn't want to make this patch bigger.

@jdm
Copy link
Member

jdm commented Aug 1, 2015

Review status: 0 of 30 files reviewed at latest revision, 1 unresolved discussion, all commit checks successful.


components/devtools/actors/timeline.rs, line 205 [r1] (raw file):
This change is no longer necessary.


Comments from the review on Reviewable.io

@metajack metajack self-assigned this Aug 3, 2015
@metajack
Copy link
Contributor

metajack commented Aug 4, 2015

Reviewed 21 of 30 files at r1.
Review status: 21 of 30 files reviewed at latest revision, 2 unresolved discussions, all commit checks successful.


components/util/task.rs, line 49 [r1] (raw file):
Is there really no way to abstract this over the Sender/IpcSender? This seems like a terrible amount of code duplication.


Comments from the review on Reviewable.io

@metajack
Copy link
Contributor

metajack commented Aug 4, 2015

-S-awaiting-review +S-needs-code-changes

I think ipc-channel needs more documentation. Some of its uses are pretty hard to grok from the code/comments written.

This looks ok except for the comments I left, which were mostly about docs.


Reviewed 9 of 30 files at r1.
Review status: all files reviewed at latest revision, 7 unresolved discussions, all commit checks successful.


components/layout/layout_task.rs, line 734 [r1] (raw file):
This is a quite convoluted way to have a one shot receiver. Please file a followup bug to make a better API for this in ipc-channel. For example, ROUTER.add_oneshot_route(...).

For this patch, please document that a oneshot route is what you're doing here, because it's not clear at all unless you really squint.


components/script/dom/htmllinkelement.rs, line 263 [r1] (raw file):
Why do we need to clone here? Can't we call self.script_chan.send(...) directly?


components/script/script_task.rs, line 532 [r1] (raw file):
Why? We already have a control port. Won't we get these messages without proxying them?


components/servo/lib.rs, line 222 [r1] (raw file):
This comment is very confusingly written. If "this" is the immediately following block, then the comment is contradictory.

Please find another way to express whatever you are trying to communicate here :)


components/servo/lib.rs, line 235 [r1] (raw file):
Does anything ever force kill this process? Or does this process always hang?

Should we really land this patch with this?


Comments from the review on Reviewable.io

@bors-servo
Copy link
Contributor

bors-servo commented Aug 5, 2015

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

@metajack
Copy link
Contributor

metajack commented Sep 1, 2015

@pcwalton Any updates here? I reviewed this a month ago.

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from 5319245 to ab992d2 Sep 30, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

Rebased up to now. Multiprocess is working but sandboxing is not. This may be Mac OS X Yosemite-specific.

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from ab992d2 to e5c9657 Sep 30, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

Review status: 0 of 34 files reviewed at latest revision, 6 unresolved discussions, some commit checks failed.


components/script/dom/htmllinkelement.rs, line 0 [r1] (raw file):
Can't do that because that will borrow self. I'll add a comment to make this clearer.


Comments from the review on Reviewable.io

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from e5c9657 to 536f114 Sep 30, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

About half of the review comments addressed so far.

@bors-servo
Copy link
Contributor

bors-servo commented Sep 30, 2015

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

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from 536f114 to 4b8b04c Sep 30, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

Review status: 0 of 33 files reviewed at latest revision, 6 unresolved discussions, some commit checks failed.


components/script/script_task.rs, line 532 [r1] (raw file):
It's because we select over lots of ports, and we can't select over in-process and IPC ports simultaneously. So we have to proxy IPC ports to in-process ports so that all the ports we're selecting over are of the same type (in this case, in-process ports).


Comments from the review on Reviewable.io

@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

Review status: 0 of 33 files reviewed at latest revision, 6 unresolved discussions, some commit checks failed.


components/servo/lib.rs, line 222 [r1] (raw file):
You're right, this comment makes no sense. I don't even remember what I meant here. Deleting it.


Comments from the review on Reviewable.io

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch 2 times, most recently from 811dfd8 to 6baae53 Sep 30, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Sep 30, 2015

Comments addressed. Content processes should shut down now, though it's hard to test this since we don't actually evict pipelines from the bfcache!

r? @metajack

@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from 6baae53 to 8459005 Sep 30, 2015
@bors-servo
Copy link
Contributor

bors-servo commented Oct 15, 2015

💔 Test failed - gonk

@bors-servo
Copy link
Contributor

bors-servo commented Oct 20, 2015

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

pcwalton added 2 commits Oct 28, 2015
Closes #8235.
Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.
@pcwalton pcwalton force-pushed the pcwalton:e10s-redux branch from c67884c to d4f47da Oct 28, 2015
@pcwalton
Copy link
Contributor Author

pcwalton commented Oct 28, 2015

Rebased. Now depends on #8237

@bors-servo
Copy link
Contributor

bors-servo commented Oct 28, 2015

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

@jdm
Copy link
Member

jdm commented Nov 13, 2015

#8492 merged! Go go go go go go go!

bors-servo added a commit that referenced this pull request Nov 19, 2015
compositing: Split Servo up into multiple sandboxed processes.

Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.
@jdm
Copy link
Member

jdm commented Nov 19, 2015

Redone in #8599.

@jdm jdm closed this Nov 19, 2015
bors-servo added a commit that referenced this pull request Nov 19, 2015
compositing: Split Servo up into multiple sandboxed processes.

Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8599)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this pull request Nov 19, 2015
compositing: Split Servo up into multiple sandboxed processes.

Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8599)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this pull request Nov 19, 2015
compositing: Split Servo up into multiple sandboxed processes.

Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8599)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this pull request Nov 19, 2015
compositing: Split Servo up into multiple sandboxed processes.

Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8599)
<!-- Reviewable:end -->
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

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