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 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 highfive added the S-awaiting-review There is new code that needs to be reviewed. label Aug 1, 2015
@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

@metajack metajack added S-needs-code-changes Changes have not yet been made that were requested by a reviewer. and removed S-awaiting-review There is new code that needs to be reviewed. labels Aug 4, 2015
@bors-servo
Copy link
Contributor

☔ 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.

@highfive highfive added S-awaiting-review There is new code that needs to be reviewed. and removed S-needs-code-changes Changes have not yet been made that were requested by a reviewer. labels Sep 30, 2015
@pcwalton
Copy link
Contributor Author

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

@pcwalton
Copy link
Contributor Author

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
Copy link
Contributor Author

About half of the review comments addressed so far.

@bors-servo
Copy link
Contributor

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

@highfive highfive added S-needs-rebase There are merge conflict errors. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Sep 30, 2015
@pcwalton
Copy link
Contributor Author

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

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 e10s-redux branch 2 times, most recently from 811dfd8 to 6baae53 Compare September 30, 2015 23:18
@pcwalton
Copy link
Contributor Author

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

@highfive highfive added the S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. label Oct 15, 2015
@bors-servo
Copy link
Contributor

💔 Test failed - gonk

@highfive highfive added S-tests-failed The changes caused existing tests to fail. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Oct 15, 2015
@bors-servo
Copy link
Contributor

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

@highfive highfive added S-needs-rebase There are merge conflict errors. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Oct 20, 2015
Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.
@highfive highfive added S-awaiting-review There is new code that needs to be reviewed. and removed S-tests-failed The changes caused existing tests to fail. labels Oct 28, 2015
@pcwalton
Copy link
Contributor Author

Rebased. Now depends on #8237

@pcwalton pcwalton added S-blocked-on-external Something, somewhere else, needs to happen before this PR can be merged. and removed S-awaiting-review There is new code that needs to be reviewed. S-needs-rebase There are merge conflict errors. labels Oct 28, 2015
@bors-servo
Copy link
Contributor

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

@highfive highfive added S-needs-rebase There are merge conflict errors. and removed S-awaiting-merge The PR is in the process of compiling and running tests on the automated CI. labels Oct 28, 2015
@jdm
Copy link
Member

jdm commented Nov 13, 2015

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

@jdm jdm removed the S-blocked-on-external Something, somewhere else, needs to happen before this PR can be merged. label Nov 13, 2015
bors-servo pushed 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 pushed 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 pushed 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 pushed 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 pushed 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
Labels
S-needs-rebase There are merge conflict errors.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants