Unhandled rejection when the app terminates before the Redis transport connects
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- nodejs, redis, typescript
- Área
- backend, distributed-systems
Línea de trabajo
Empieza por el constructor de Transmit, donde, según el issue, se llama a this.#bus?.subscribe(...), y sigue cómo el transporte Redis gestiona las conexiones y las suscripciones rechazadas. Reproduce el problema con el escenario indicado: se apaga antes de conectar o Redis no está disponible al iniciar. Se considera terminado cuando la suscripción fallida deja de hacer que Node termine con el código de salida 1; considera si el comportamiento de reintento de reconexión entra en el alcance.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Transmit's constructor calls void this.#bus?.subscribe(this.#transportChannel, …). When the app shuts down while the Redis transport is still connecting (e.g. node ace migration:run --help with @adonisjs/transmit and the redis transport), the transport's connections are closed, subscribe rejects with ioredis' Error: Connection is closed. and, since void doesn't handle it, Node exits with code 1. The same likely happens if Redis is down at boot and the queued command fails.
Suggested fix: this.#bus?.subscribe(...).catch((error) => debug('transport subscribe failed: %O', error)) (or log it), and maybe retry on the bus' reconnect.
Versions: @boringnode/transmit 0.4.2, @boringnode/bus 0.10.0, ioredis 5.11.1, Node 24.
- Lenguaje dominante
- TypeScript
- Estrellas
- 43
- Forks
- 9
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin 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.
Más de boringnode/bus
-
good first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
boringnode/bus#41 · 3 comentarios ·
-
Dependency DashboardAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 12/100
boringnode/bus#5 ·
Todos los issues de boringnode/bus
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
cursor/community-plugins#465 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
vetro-protocol/vetro-monorepo#978 ·
Los mantenedores suelen responder en 1 día
-
ai-generated bug category:security effort:s priority:p3
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
LanternOps/breeze#9697 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
maniator/verticopolis#1303 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
components-web-app/docs#297 ·