bug: RpcClient.start reports success after a signal exit during startup
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
Direzione di ricerca
Il bug si trova nel metodo RpcClient.start() in packages/coding-agent/src/modes/rpc/rpc-client.ts. Crea uno script figlio di test minimale che chiami process.kill(process.pid, "SIGTERM"). Usalo per riprodurre il problema istanziando il client e chiamando start(). La correzione dovrebbe controllare exitError e l'uscita per segnale in aggiunta a exitCode. Esegui la suite di test esistente con npm run check e ./test.sh per assicurarti che la regressione passi dopo la correzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
RpcClient.start() resolves successfully when its child terminates with SIGTERM during the startup delay. A caller can therefore treat a dead agent as ready. The startup check only examines exitCode, which is null for a signal exit; the exit handler has already recorded the failure in exitError.
This is a reliability bug, not a security vulnerability. A small local fix checks the recorded error and signal exit as well. May I have lgtm approval to submit it with regression tests?
Steps to reproduce
On macOS, create a temporary child.mjs containing:
process.kill(process.pid, "SIGTERM");
Instantiate RpcClient from packages/coding-agent/src/modes/rpc/rpc-client.ts with cliPath pointing to that file, then await client.start(). It resolves rather than rejecting. The reproduction launches only this minimal Node child, not StepCode or any extensions.
Expected behavior
Reject startup with Agent process exited (code=null signal=SIGTERM) when the child has already terminated. The regression fails before the fix and passes afterward. Local npm run check and ./test.sh passed with Node 22, pnpm 9.15.9, and rg/fd available on PATH.
Version
main at b2dacb6d9e297f3c9931c1adbdc9d6e1e97ef048, macOS arm64.
- Lingua principale
- TypeScript
- Stelle
- 1k
- Fork
- 71
- Merge medio
- 13h 14m
- PR unite (30g)
- 66
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 stepfun-ai/Step-Code
-
area/build bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#190 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
area/tools bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#184 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#179 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
install.sh fails when awk is not installedForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertauntriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
stepfun-ai/Step-Code#149 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Fix documentation typos and broken linksForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertauntriaged
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
stepfun-ai/Step-Code#144 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di stepfun-ai/Step-Code
Issue simili
-
area: frontend priority: normal
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
formbricks/formbricks#9918 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
thecodacus/pithagoras#364 ·
I maintainer di solito rispondono entro 1 giorno
-
TestAutonomousStop_ReportsObservedState fails under host load: 1s wall-clock ceiling vs 250ms cycleApertatype:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
nightgauge/nightgauge#2909 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno