[Meta] Enable Android e10s-multi
Categories
(GeckoView :: Sandboxing, enhancement, P3)
Tracking
(Not tracked)
People
(Reporter: snorp, Assigned: bugzilla)
References
(Depends on 1 open bug, Blocks 2 open bugs)
Details
(Keywords: meta, Whiteboard: [geckoview:m1910] [fission:android:m1])
Right now we only support a single content process. We should support more than that.
Updated•4 years ago
|
Comment 1•4 years ago
|
||
P1. Important for crash resilience and Fission, but not needed for Fenix MVP.
Comment 2•4 years ago
|
||
James says that we should enable e10s-multi for Fenix MVP.
Comment 3•4 years ago
|
||
Assigning to Bobby because James says Bobby's working on e10s-multi. This is a nice-to-have for Fenix MVP.
Comment 4•4 years ago
|
||
I've rebased snorp's patch and debugged it a bit. The main problem causing the test failures is that we're asked to create more than three content processes, which we can't do, and then just hang. This happens because the parent spawns three child processes and then shuts a few of them down, leading it to believe it has runway to start more.
AFAICT There are two problems in the code that lead to this condition:
(1) At present, the standard shutdown path in the child process doesn't seem to actually cause the process to be terminated such that we receive onServiceDisconnected in the parent. I think if this were an opt build we'd eventually terminate via the ForceKillTimer (which is disabled for debug builds), but then we'd still hit the second problem:
(2) It's racey, because child process shutdown is fundamentally asynchronous. We'll need to handle this better.
Let's tackle (1) first. I've traced us all the way to returning from XRE_InitChildProcess, which returns out of nativeRun. But the java portion of the app continues to run. What's the right way for this to be hooked up?
Reporter | ||
Comment 5•4 years ago
|
||
(In reply to Bobby Holley (:bholley) from comment #4)
I've rebased snorp's patch and debugged it a bit. The main problem causing the test failures is that we're asked to create more than three content processes, which we can't do, and then just hang. This happens because the parent spawns three child processes and then shuts a few of them down, leading it to believe it has runway to start more.
AFAICT There are two problems in the code that lead to this condition:
(1) At present, the standard shutdown path in the child process doesn't seem to actually cause the process to be terminated such that we receive onServiceDisconnected in the parent. I think if this were an opt build we'd eventually terminate via the ForceKillTimer (which is disabled for debug builds), but then we'd still hit the second problem:
Ah. The way we handle this in GeckoRuntime
is to listen[0] for the Gecko:Exited
message. We need to do something similar in GeckoServiceChildProcess
and then stop the service.
(2) It's racey, because child process shutdown is fundamentally asynchronous. We'll need to handle this better.
I thought we had something hacked up to just kill children in order to avoid this, but maybe I'm misremembering?
Let's tackle (1) first. I've traced us all the way to returning from XRE_InitChildProcess, which returns out of nativeRun. But the java portion of the app continues to run. What's the right way for this to be hooked up?
Comment 6•4 years ago
|
||
Adding [geckoview:fenix:m7] whiteboard tag because we want e10s-multi soon but it's not strictly a Fenix MVP release blocker.
Comment 7•4 years ago
|
||
I spoke with James and I recommend explicitly not targeting MVP for this as it adds risk.
Comment 8•4 years ago
|
||
Deferring this bug from Fenix's M7 (July) milestone to the M8 backlog for later in Q3.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 9•4 years ago
|
||
I'm editing a bunch of GeckoView bugs. If you'd like to filter all this bugmail, search and destroy emails containing this UUID:
e88a5094-0fc0-4b7c-b7c5-aef00a11dbc9
Comment 10•4 years ago
|
||
Fenix issue requesting e10s-multi so one tab crash doesn't crash every tab:
https://github.com/mozilla-mobile/fenix/issues/2863
Comment 11•4 years ago
|
||
Defer e10s-multi to October because we may get more engineering help then.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 12•4 years ago
|
||
Aaron will start working on Android e10s-multi in October, but we expect e10s-multi to be a multi-month project.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 13•2 years ago
|
||
e10s-multi rode in 90. Resolving.
Comment 14•11 months ago
|
||
Moving Android Fission bugs to the new GeckoView::Sandboxing component.
Description
•