fix emulator OutOfMemory by forcing zygote init race win via warm reboot #12113
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull Request template
Purpose / Description
Our emulator tests have all the sudden become very flaky.
Proximate cause appears to be OutOfMemory death spiral in emulator processes.
Root cause is hypothesized to be a race between correct (sufficient) memory sizing and zygote init in boot sequence
This should work around that
Details here #11091 (comment)
Fixes
Unlogged general flakiness in tests_emulator.yml
Approach
Warm reboot the emulator by restarting the zygote process
The sleep 5 / sleep 10 are just rough guesses that a) time to settle is needed b) that time is sufficient
How Has This Been Tested?
It is in testing, adb logcat should show a zygote with something other than -Xmx16m
Ideally we see a -Xmx16m at start then a -Xmx"not 16m" later in zygote / art init arguments
It may take a couple runs (my guess is 3?) before the race is initially lost / then repaired to prove this works
Learning (optional, can help others)
I found this: https://support.circleci.com/hc/en-us/articles/360021812453-Common-Android-memory-issues#zygote
Which leads to this: https://www.rainforestqa.com/blog/hunting-race-condition-in-android-10-emulator
Checklist
Please, go through these checks before submitting the PR.