fix(apple-runner): fence prep spawns after teardown or last-waiter cancellation
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
- Ambito
- mobile-dev, testing
Direzione di ricerca
Start by reading PR #3193 and trace the runner start, preparation-spawn, teardown, and waiter-cancellation paths it changed; the issue does not name source files or tests. Then identify where the session lock is held during close and how retries are admitted. Done means the specified cancellation controls and live close-during-build route show no respawn, close completes, owned children are cleaned up, and the focused tests and affected gate pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Purpose
A runner start must stop creating preparation processes after its execution host is torn down or its last interested waiter cancels. Stopping the currently registered children once is insufficient.
PR #3193 measured this during close with a cold build: close killed the first build-for-testing before obtaining the runner session lock, but the detached prewarm health retry spawned a second build while close waited for that lock. Close reached its timeout; the second build remained until daemon stop. Original evidence: https://github.com/callstack/agent-device/pull/3193#issuecomment-5981188182. This observation is at b6cdd3c49, not a fresh reproduction on main.
Required behavior
- The in-flight runner start owns whether further preparation is admitted. Device teardown closes that admission before stopping current prep children or waiting for the session lock.
- Canceling the final interested waiter closes admission for that start. Canceling one waiter must preserve work still needed by another.
- Check admission at every preparation spawn, including retries after a killed build. A check only when registering an already spawned child is too late.
- A later independent open may create a fresh start; a retired start cannot resume and publish a runner into it.
- Prefer one start-owned cancellation/admission mechanism. Reassess whether the request-owner prep filter introduced by #3193 remains necessary once the reachable callers and waiter semantics are covered.
Done when
- A control holds the runner session lock during a cold build, begins non-retained close, and attempts a retry after the first child is stopped. No second prep child is spawned; close settles without waiting for a replacement build.
- Controls cover cancellation before the first prep spawn, last-waiter cancellation, and another still-interested waiter.
- Repeat the live close-during-build route with evidence of no respawn, completed close, and cleanup. Retain the original evidence attribution.
- Focused tests and the affected gate pass; process signaling remains scoped to owned children.
Depends on #3193. This is start admission, not another host-wide timeout sweep or a shorter join timeout.
- Lingua principale
- TypeScript
- Stelle
- 4.9k
- Fork
- 328
- Merge medio
- 12h 13m
- PR unite (30g)
- 541
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di callstack/agent-device
-
settings clear-app-state fails with ENOENT … scandir '(null)' for iOS system apps such as SettingsForse già presa @thymikee l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
callstack/agent-device#3305 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
callstack/agent-device#1869 ·
I maintainer di solito rispondono entro 1 giorno
-
install and reinstall from another session in the same daemon replace the app on a claimed deviceAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
callstack/agent-device#3345 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
callstack/agent-device#3344 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
callstack/agent-device#3342 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di callstack/agent-device
Issue simili
-
bug(sight): the dashboard's text truncations split surrogate pairs and show broken charactersApertacomponent:sight
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agentic-os-org/ANOLISA#6738 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug Durable Agents Observability (AI Telemetry) status: needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
mastra-ai/mastra#26470 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
paperclipai/paperclip#15630 ·
I maintainer di solito rispondono entro 1 giorno
-
[good first issue, hacktoberfest] ⛩️ Add new Theme: Sakura Latte (good-first-issue)Forse già presa @PGrayCS l’ha presa oggi. Apertacommunity first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficoltà 1/5 1-3 ore Idoneità per principianti 78/100
lingdojo/kana-dojo#31937 · 1 commento · 5 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
feature/cohorts feature/feature-flags team/feature-flags
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno