Skip to content

Stabilise the Android emulator: no snapshot, more RAM, reclaim disk - #57

Merged
germ-mark merged 1 commit into
mainfrom
llm/android-emulator-stability
Aug 18, 2026
Merged

Stabilise the Android emulator: no snapshot, more RAM, reclaim disk#57
germ-mark merged 1 commit into
mainfrom
llm/android-emulator-stability

Conversation

@germ-mark

Copy link
Copy Markdown
Contributor

Summary

The Test Android leg has failed twice consecutively on #54, a PR that is green on all four Apple destinations and Linux. In both cases the emulator died — no test ever failed an assertion:

run where it died
1 adb: device offline at the boot check, immediately after Successfully loaded snapshot 'default_boot' — before any test ran
2 adb daemon unreachable ~62s in, exit 137 (SIGKILL), mid-run

When the emulator survives, all 119 tests pass in ~18s. So this is emulator/host reliability, not test cost or correctness.

Three targeted changes:

  • -no-snapshot — takes the snapshot save/restore step out of the picture, which is what the first failure mode points at. Costs a slower boot; there's ample room in the existing 30-minute budget, since a full run is currently under six minutes.
  • -memory 4096 — headroom for test binaries that statically link C libraries. Add AtprotoTypesVerify: CAR/MST/CID repo-proof verification #54 adds libsecp256k1 as a test-only dependency, which is a plausible contributor to the SIGKILL.
  • free-disk-space: true — the job already unpacks a Swift toolchain and the Android SDK; reclaiming first keeps them from crowding out the emulator image.

Note that android-emulator-options replaces the action's default rather than appending, so the three existing flags (-no-window -noaudio -no-boot-anim) are repeated explicitly.

This is deliberately a fix to the shared workflow rather than a workaround in #54 — the leg was added yesterday and has only one prior run, so there's no baseline yet, and any future PR with a heavier test binary would hit the same wall.

Test plan

  • Workflow YAML parses; inputs resolve to the intended values
  • Android leg green on this PR (the real check — this workflow runs on pull_request)

🤖 Generated with Claude Code

The Android leg has failed twice in a row on a PR whose tests pass on every
other platform, and in both cases the emulator died rather than a test
failing: once as `adb: device offline` immediately after "Successfully loaded
snapshot", once as the adb daemon becoming unreachable mid-run (exit 137,
SIGKILL). When the emulator survives, all 119 tests pass.

-no-snapshot removes the snapshot save/restore step implicated in the first
mode, trading a slower boot for determinism — there is room inside the
existing 30-minute budget, since a full run is currently under six. -memory
4096 gives the AVD headroom for test binaries that statically link C
libraries, and freeing disk first keeps the Swift toolchain and Android SDK
from crowding out the emulator image.

Note that android-emulator-options replaces the action's default rather than
appending, so the three existing flags are repeated here.
@changeset-bot

changeset-bot Bot commented Aug 18, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 258e2fa

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@germ-mark
germ-mark merged commit d20364a into main Aug 18, 2026
6 checks passed
@germ-mark
germ-mark deleted the llm/android-emulator-stability branch August 18, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant