Repository navigation
fix(android): wait for killed processes to exit before the close fence - #4027
Conversation
|
@okwasniewski is attempting to deploy a commit to the Callstack Team on Vercel. A member of the Team first needs to authorize it. |
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
There was a problem hiding this comment.
All reported issues were addressed across 7 files
Tip: Get a Slack DM when cubic finishes reviewing your PRs. Connect Slack
View guided diff | Re-trigger cubic
fc6d637 to
42e84d9
Compare
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
|
The code looks good at 42e84d9, and I found no blocking problems. Smoke Tests is still running, and the Vercel failure is the fork-deploy authorization prompt, which is unrelated to this diff. There are no conflicts. The next step is to wait for Smoke Tests to go green. The live runs are reported without logs, and I did not see a run at this head where the exit phase takes longer than 2 s, which is the case this fix targets. Not blocking, and fine to take or leave: (1) in the process phase, |
Summary
Android
closeandopen --relaunchfailed withandroid-app-close-timeout(phaseprocess) on loaded CI emulators while the force-stopped app was still exiting. Logcat from 15 CI runs of the e2e mobile benchmark shows everyKilling <pid>followed byZygote: Process <pid> exited due to signal 9with no restart in between after up to ~700 ms (7 ms on an idle Mac). The 2 s fence counted that exit time, so a busier runner failed it (2 of ~20 runs today).closereads the package's pids befoream force-stop, then waits up to 10 s for those pids to exit (new phaseexit; the bound only catches a wedged device). The 2 sprocessfence then still refuses a new process.pidofthat errors, prints no pid list, or times out (bounded by the fence) fails withandroid-process-probe-unavailable, askillAppdoes.Known gap: a process started between the
pidofread andforce-stopis not in the killed set, so a slow exit of that one still hits the 2 s fence.Validation
pnpm check:affected --run --head 42e84d915: all runnable checks passed.process remained running after closeand passes on 42e84d9.open --relaunch3x gave a fresh pid each time,closeleft no process. At fc6d637, Pixel 9 API 37: e2e mobile benchmark on this build: Android deterministic flows-lists + login-form 10/10, agentic Login Form / Infinite Scroll / Modal Flow 2/2.