`pg-cursor` usage leads to memory leak
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- javascript, postgresql
Línea de trabajo
Comienza en packages/pg/lib/client.js alrededor de la línea 577 y reproduce el caso de read-query con Cursor en el snippet de JavaScript proporcionado. Inspecciona la limpieza del timeout y la duración del callback en node inspector después de cerrar el cursor y destruir el cliente. Está hecho cuando el resultado de la consulta ya no se conserva después de la limpieza y la reproducción confirma su recolección.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
If you will execute any read query, you can see in node inspector that GC ignores query result and doesn't cleanup it
const client = new PostgreSqlClient({...credentials, query_timeout: 15 * 60_000});
const cursor = client.query(
new Cursor(query),
unhandledErrorCallback,
);
await new Promise((resolve, reject) => {
cursor.read(100000, (error, _, result) => {
if (error) {
reject(error);
} else {
resolve(result);
}
})
})
This happens because of the callback with timeout cleanup:
https://github.com/brianc/node-postgres/blob/master/packages/pg/lib/client.js#L577
query.callback will not be called even if you closed cursor and destroyed the client
- Lenguaje dominante
- JavaScript
- Estrellas
- 13.2k
- Forks
- 1.4k
- Merge medio
- 6 d 15 h
- PR fusionados (30 d)
- 6
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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 brianc/node-postgres
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
brianc/node-postgres#3770 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
brianc/node-postgres#3716 · 1 comentario ·
-
# remove bring your own promise Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
brianc/node-postgres#3631 · 1 comentario ·
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 62/100
brianc/node-postgres#2857 ·
-
can't view docs for old versions Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
brianc/node-postgres#2433 ·
Todos los issues de brianc/node-postgres
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mksglu/context-mode#1200 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
neondatabase/website#5944 ·
-
module: core
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
bigbluebutton/bigbluebutton#25849 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
jaegertracing/jaeger-ui#4506 ·