Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

The `abort` event on nodejs is deprecated

Abierto
#4,575 2 comentarios 0 reacciones 0 asignados Ver en GitHub

@akashbirajdar04 ya está trabajando en esto.

Desde el 30/4/2026.

  • #4579 de @sapirbaruch — cerrado sin fusionar

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
52/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
node.js

Línea de trabajo

Comienza con hapi/lib/request.js en la línea 328 y la documentación del abort-event de Node.js http.ClientRequest. Sigue Request.active() y reproduce el comportamiento con una solicitud hapi retrasada mientras actualizas el navegador repetidamente. Se considera terminado cuando las solicitudes desconectadas se detectan y cancelan de forma fiable a pesar del evento obsoleto, y el comportamiento está cubierto por comprobaciones de regresión relevantes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Runtime

node.js

Runtime version

24

Module version

21.4.4

Last module version without issue

Node 17

Used with

hapi application

Any other relevant information

The Request.active() function always returns true.

The abort event on NodeJS's http.ClientRequest has been deprecated since NodeJS v17, and hapi/lib/request.js is depending on that function.

[1] https://github.com/hapijs/hapi/blob/master/lib/request.js#L328
[2] https://nodejs.org/api/http.html#event-abort

What are you trying to achieve or the steps to reproduce?

When spamming my F5 key on my browser with a request with an intentional delay, the request never got cancelled, and active() always returned true.

What was the result you got?

The requests were never cancelled.

What result did you expect?

I wrote a small plugin to work around the issue:

export const plugin: Plugin<object> = {
  name: 'earlyCancel',
  register(server) {
    server.ext('onPreAuth', (request, tk) => {
      request.app.disconnected = false;
      request.raw.req.on('close', () => {
        if (!request.raw.res.writableEnded) {
          request.app.disconnected = true;
        }
      });
      return tk.continue;
    });
  },
};

And verify that when spamming F5, I was able to get some requests to be cancelled.

Lenguaje dominante
JavaScript
Estrellas
14.8k
Forks
1.4k
Merge medio
17 min
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de hapijs/hapi

Todos los issues de hapijs/hapi

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.