Skip to content

fix(emulator): include ADB work in the Android boot deadline - #35550

Closed
OrcaWin wants to merge 1 commit into
audit/android-avd-boot-identityfrom
audit/android-avd-boot-deadline
Closed

OrcaWin wants to merge 1 commit into
audit/android-avd-boot-identityfrom
audit/android-avd-boot-deadline

Conversation

@OrcaWin

@OrcaWin OrcaWin commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator
Files Added Deleted Net
Test 2 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​113 $\color{#cf222e}{\Huge{\mathbf{−}}}$​3 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​110
Prod 2 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​37 $\color{#cf222e}{\Huge{\mathbf{−}}}$​15 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​22

LoC: +154/-22

Count ADB command time toward the Android boot polling deadline. The loop previously counted only sleeps, so slow census/name/boot-property commands could extend the three-minute wait and an expired successful response could still be accepted. Forward the remaining budget through the existing runner, retain its 60s per-command cap, clip the last sleep and reject late completion. Initial discovery/launch remain outside the polling deadline.

Stacked on #35536 (requested AVD identity). Merge/reconcile that parent first, then retarget/rebase onto main and revalidate; preserve #9950 SDK/network guards.

Validation: 30 configured tests/four suites, strict focused TypeScript and five ordinary hook tasks pass. Exact parent: three deadline regressions fail, timely-boot control passes. Real Node26.8.1 spawn/execFile against owned SDK executable fixtures, seven exact production modules, ten groups per arm at 1/10 boots: 33 adverse calls run 99 polling censuses before vs 33 after; 33 actual stalled subprocesses canceled. Observed polling 2746.78–3066.18ms before vs 303.80–310.60ms after with a 300ms budget; this includes scheduling/termination overhead and is not a strict wall-clock guarantee. Healthy/existing-serial controls preserved; all 715 baseline+committed-final fixture PIDs absent and profiles removed. No physical SDK/device, native Electron UI, macOS/Windows, CPU/RSS claim.

A post-format artifact byte check failed for the earlier pre-hook native run; that evidence is retained as superseded. Native fixed workload was rerun from committed source and rebuilt byte equality verified. Required aggregate queued after #35536; no aggregate pass or Claude takeover claimed. Frozen head 95445f85a699563f2c9c2e95e503b9664651d1a0, parent 8b7d1731bab0fda358defe6fa0619ff937a54dbd. Evidence /home/neil/.local/state/orca-electron-audit/android-avd-boot-deadline/report.md; 51-payload seal c4484bfa26b4154dd015bfc00680e943464885877a3715b1e1e6cefd445c969b.

@OrcaWin

OrcaWin commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks. Closing this one. Switching boot polling to a wall-clock deadline fixes an overrun that only shows up when adb calls stall for tens of seconds each, and the existing 60s per-command cap already bounds that. It also creates a user-visible regression: an emulator that finishes booting just after the deadline is reported as a timeout, and the per-command adb timeouts are cut short on the last poll. That doesn't justify around 100 lines of fake-timer tests plus a stack on #35536 and a rebase onto main's localized error copy. The boot identity fix in #35536 will land on its own.

Closing per maintainer triage (low-risk / zero user trade-off / material-gain bar).

@OrcaWin OrcaWin closed this Oct 29, 2026
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