Process does not exit after https request with keepAlive enabled (now default in Node 19)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.3k
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 283
Descripción
Version
v19.8.1
Platform
Linux Jake-Framework 6.2.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 18 Mar 2023 01:06:36 +0000 x86_64 GNU/Linux
Subsystem
https
What steps will reproduce the bug?
Run a script containing:
const https = require("https");
const url = "https://github.com/dprint/dprint/releases/download/0.35.3/dprint-x86_64-unknown-linux-gnu.zip";
https.get(url, { method: "HEAD" }, console.log);
This will hang.
How often does it reproduce? Is there a required condition?
100% of the time; downgrade to Node 18 and it no longer hangs.
What is the expected behavior? Why is that the expected behavior?
No hang. Run this:
const https = require("https");
const url = "https://github.com/dprint/dprint/releases/download/0.35.3/dprint-x86_64-unknown-linux-gnu.zip";
https.get(url, { method: "HEAD", agent: new https.Agent({ keepAlive: false }) }, console.log);
And it will succeed.
What do you see instead?
Hang; the request succeeds and the response is given, but the process never exits.
Additional information
This is a change I saw in the Node 19 release blog post; keep-alive is enabled by default now, but, it seems to cause a hang.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando la reproducción proporcionada de https.get en Node v19.8.1 y compárala con la variante keepAlive:false y con Node 18. Rastrea el ciclo de vida de la solicitud https y del agent para determinar por qué una respuesta HEAD correcta mantiene vivo el proceso. Se considera completado cuando el comportamiento predeterminado de keep-alive ya no deja este proceso bloqueado y la reproducción notificada cuenta con cobertura de pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, nodejs
- Área
- backend, networking
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 42/100