Bound stale-claim recovery waiting for unfinished runtime disposal
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript
- Domaine
- devtools
Piste de recherche
Start by reading the terminal gateway semantics in #4063 and tracing the owner-scoped stale-claim recovery caller that awaits gateway.shutdown(). Reproduce the described pending wait at a named SHA, then settle the recovery budget and typed retained outcome before implementation. Done means proving bounded caller completion without claiming cleanup succeeded, preserving the claim and earlier failure, and observing late shutdown and rejection.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Follow-up to #4045 and review discussion on #4063. Establish a bounded completion contract for stale-claim recovery when a runtime owner load never settles.
Boundary and required behavior
The composed gateway attempts loaded owners immediately and also shuts down late-loaded owners. Its shutdown(): Promise<void> must remain pending until all owner loads and shutdowns settle; skipping pending loads or reporting success after a race would falsely confirm cleanup. The daemon already bounds its wait and reports platformOwners: pending.
The owner-scoped stale-claim recovery caller awaits gateway.shutdown() directly. Durable recovery authority acquisition can return after its deadline or cancellation while an underlying gateway.bind/owner load remains in flight. Consequently, final disposal can outlive the acquisition deadline. This is a source-traced liveness risk, not a reproduced production incident.
Keep the fix at the caller's recovery budget/outcome boundary. Determine the contract before implementation: bounded waiting must keep the claim, preserve any earlier retained reason/primary failure, and keep late owner shutdown and its rejection observed. Do not add a silent success fallback, abandon late cleanup, allow device fallback, or weaken the gateway's terminal lifetime guarantee.
Observable completion
- In a disposable checkout at a named SHA, demonstrate acquisition deadline/cancellation followed by a never-settling owner load through the composed recovery path. Record which wait remains pending.
- Specify the recovery budget owner and typed timeout/retained result. Distinguish wait expiration from confirmed cleanup.
- Prove bounded caller completion and byte-identical retained claim; successful loaded owners must still close promptly.
- Release a delayed owner and prove it shuts down at most once, cannot bind after close starts, and late failure is observed without replacing the earlier outcome.
- Prove the regression with a controlled revert and run serialized exact-head affected validation.
Dependencies and limits
Use #4063's terminal gateway semantics as the baseline; rebase on its merged result before implementing overlapping changes. No new gateway timeout or completion result is approved by this diagnostic issue. This issue remains needs-triage until the bounded recovery contract is decided. It does not establish that existing entrypoint timeouts (#4086) have this cause.
- Langage dominant
- TypeScript
- Étoiles
- 5.3k
- Forks
- 377
- Merge moyen
- 13 h 58 min
- PR mergées (30 j)
- 654
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de callstack/agent-device
-
iOS alert wait: the last poll can get ~30 ms and turns "no alert" into a failed readPeut-être pris @pcbeingused333 l’a pris il y a 7 jours. Ouvertebug ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
callstack/agent-device#4018 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
callstack/agent-device#1869 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
callstack/agent-device#4274 ·
Les mainteneurs répondent en général sous 1 jour
-
iOS simulator: in-flight `prepare ios-runner` keeps retrying the old runner port after the runner is relaunched on a new portPeut-être pris @twotnguyen l’a pris il y a 1 jour. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
callstack/agent-device#4265 ·
Les mainteneurs répondent en général sous 1 jour
-
bug ready-for-agent
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
callstack/agent-device#4264 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de callstack/agent-device
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
documentation easy good first issue help wanted
Difficulté 1/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
Billion-context documentation addendum: nudge is independent of window occupancy. | billion-context 文档补充:nudge 与窗口占用无关Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 86/100
ranxianglei/billion-context#5893 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
microsoft/monaco-editor#5575 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100