bug: RpcClient.start reports success after a signal exit during startup
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 75/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- node.js, typescript
Piste de recherche
Le bug se trouve dans la méthode RpcClient.start() du fichier packages/coding-agent/src/modes/rpc/rpc-client.ts. Créez un script enfant de test minimal qui appelle process.kill(process.pid, "SIGTERM"). Utilisez-le pour reproduire le problème en instanciant le client et en appelant start(). Le correctif doit vérifier exitError et la sortie par signal en plus de exitCode. Exécutez la suite de tests existante avec npm run check et ./test.sh pour vous assurer que la régression passe après le correctif.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- TypeScript
- Étoiles
- 1k
- Forks
- 68
- Merge moyen
- 13 h 14 min
- PR mergées (30 j)
- 66
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un 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 stepfun-ai/Step-Code
-
area/build bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
stepfun-ai/Step-Code#190 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
area/tools bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
stepfun-ai/Step-Code#184 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
stepfun-ai/Step-Code#179 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
install.sh fails when awk is not installedPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverteuntriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
stepfun-ai/Step-Code#149 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Fix documentation typos and broken linksPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverteuntriaged
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
stepfun-ai/Step-Code#144 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de stepfun-ai/Step-Code
Issues similaires
-
needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
microsoft/playwright#43875 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
feature
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
calagopus/panel#285 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 Moins d'une heure Accessibilité débutants 88/100
adobe/react-spectrum#10909 ·
Les mainteneurs répondent en général sous 1 jour
-
Keybind conflict with "Tileset"Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Run the dependency drift checkPeut-être pris @spaceninja l’a pris aujourd’hui. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
cloudfour/lighthouse-parade#449 ·
Les mainteneurs répondent en général sous 1 jour