Daemon leaves a /rpc connection unanswered when the JSON body root is null
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 76/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- node.js, typescript
- Domaine
- backend-api-design, testing-qa
Piste de recherche
Start with src/daemon/server/http-rpc-envelope-validation.ts and the /rpc request body handling described in the issue. Add a test that posts each non-object JSON root, including null, and checks for the 400 JSON-RPC -32600 response with id: null; then confirm unexpected throws still receive a response. Done means no /rpc body leaves its connection waiting unanswered.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Purpose
A POST /rpc body whose JSON root is null is never answered: the connection stays open until the client's own timeout. Any other non-object root is answered correctly, so only this one literal hangs.
Findings
JSON.parse('null') succeeds and yields null, so the envelope check dereferences null.jsonrpc and throws. On main the throw happens inside req.on('end'); inside handleRpcRequest on #3452, which the body reader calls as void handleRpcRequest(...). Neither caller awaits it, so the rejection is dropped and nothing writes a response.
Measured against a live server with a 400 ms client budget, on main @ 5f84627d8 and on #3452's head — identical on both:
| body | result |
|---|---|
null |
no answer within budget, connection held open |
true, 7, "str", {}, [] |
400 -32600 Invalid Request |
Reported from the #3424 review thread on src/daemon/server/http-rpc-envelope-validation.ts. Deliberately not fixed in #3424: that issue's contract is that observable behavior is preserved exactly, and this path has no test of its own.
Required behavior
A null root is refused the way every other non-object root already is: 400, JSON-RPC -32600 Invalid Request, id: null. No connection is left waiting on a request the daemon will not answer.
Completion
- A test posts each non-object JSON root, including
null, and asserts the answer for every one. - No
/rpcbody leaves the connection unanswered: an unexpected throw on any path still gets a response.
- Langage dominant
- TypeScript
- Étoiles
- 5k
- Forks
- 334
- Merge moyen
- 11 h 48 min
- PR mergées (30 j)
- 605
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
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
callstack/agent-device#3407 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
callstack/agent-device#3353 ·
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
-
iOS: fill rejects the right text as `TEXT_ENTRY_MISMATCH` when the focused field moves while typing (since 0.21.25)Peut-être pris @Lanchez l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
callstack/agent-device#3595 ·
Les mainteneurs répondent en général sous 1 jour
-
`fold` always fails on Xcode 27.1 RC: its pose check calls `devicectl device motion hinge-angle`, which this devicectl doesn't havePeut-être pris @thymikee l’a pris aujourd’hui. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
callstack/agent-device#3581 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de callstack/agent-device
Issues similaires
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueOuverteP1
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
SocialGouv/code-du-travail-numerique#7561 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
kubernetes-sigs/headlamp#7950 ·
Les mainteneurs répondent en général sous 3 jours
-
README for cliPeut-être pris @Janvi-kapoor l’a pris aujourd’hui. OuverteOSCI'26
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
GauravKarakoti/SecureFlow#1308 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
vitest-dev/vitest#11577 ·
Les mainteneurs répondent en général sous 1 jour