junit harness for content process crash tests needs redesign
Categories
(GeckoView :: Sandboxing, defect, P1)
Tracking
(firefox73 fixed)
Tracking | Status | |
---|---|---|
firefox73 | --- | fixed |
People
(Reporter: bugzilla, Assigned: bugzilla)
References
Details
(Whiteboard: [geckoview:m1912])
Attachments
(2 files)
TL;DR (emphasis mine):
If the process name begins with a ':' character, a new process private to that application will be created when needed to run that component (allowing you to spread your application across multiple processes).
Our current setup for the crashContent
test assumes that any content processes started by the RemoteGeckoService
will be charged to the RemoteGeckoService
process, when in fact the content processes are charged to the androidTest
application as a whole.
In other words, RemoteGeckoService
's instance of Gecko thinks it is creating a new content process, while Android just hands it the existing content process from androidTest
.
Prior to bug 1594820, this seemed to kind of mostly work due to fluky timing between the various processes. With the patches from bug 1594820 applied, the timing changed enough that, while the content process does successfully crash, that crash report is consumed by androidTest
's crash handler instead of RemoteGeckoService
's crash handler. Ergo, crashContent
perma-failure.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
We now need the junit crash handler to see crash reports.
Depends on D56852
Assignee | ||
Comment 2•4 years ago
|
||
-
We add bidirectional messaging to
TestCrashHandler
:- The test sends a message to the
TestCrashHandler
, notifying it that an
upcoming crash is intentional and its intent should be checked. - Upon receipt of the crash report, the service reviews the contents of the
crash intent, and then sends a message back to the test with the test results. - The service deletes any crash dump artifacts belonging to crash intents
that have been evaluated so that the harness doesn't pick up any
intentional crashes.
- The test sends a message to the
-
We remove
crashContent
fromCrashTest.kt
and createContentCrashTest.kt
for that case. ThecrashParent
test remains unchanged other than switching
its crash handler over toTestCrashHandler
. -
We remove the
CrashTestHandler
service, as bothcrashContent
and
crashParent
tests now useTestCrashHandler
.
Depends on D56853
Pushed by aklotz@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5bd66ef01543 Part 1 - Remove setting of MOZ_CRASHREPORTER_NO_REPORT from runjunit.py; r=gbrown https://hg.mozilla.org/integration/autoland/rev/2a1e94a02eef Part 2 - Move content crash test into a session test and modify TestCrashHandler to selectively evaluate crash report submission; r=snorp
Comment 5•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5bd66ef01543
https://hg.mozilla.org/mozilla-central/rev/2a1e94a02eef
Comment 6•2 years ago
|
||
Moving content process management bugs to the new GeckoView::Sandboxing component.
Description
•