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

Does pg-cursor return empty result even on network error?

Abierto
#3,768 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
javascript, node.js, postgresql

Línea de trabajo

Comienza con la API documentada de pg-cursor y sigue el bucle next() mostrado a través de cursor.read(min), especialmente las rutas de cierre de conexión y de errores de deadlock. Reproduce el caso de alta carga si es posible y determina si un resultado vacío es un marcador de fin válido o un error; se considera terminado cuando el comportamiento y el manejo requerido estén verificados.

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

Descripción

As per this link https://node-postgres.com/apis/cursor , cursor will return empty result so we can stop.

But we have found that under huge load, when postgres closes connection or throws an error due to deadlock, cursor returns empty result. This happens rarely and out of 100 thousand of transactions, approx 20 to 80 transactions fail when cursor returns empty results, but results are sure there.

This occurs only under huge load. Under moderate or low load, everything works fine.

    async *next(min = 100) {

        const connection = await this.connection.getConnection(this.signal);
        const q = toQuery(this.command);
        const cursor = this.cursor = connection.query(new Cursor(q.text, q.values));
        do {
            const rows = await cursor.read(min);
            yield *rows;
            if (rows.length === 0) {
                break;
            }
        } while (true);
    }

Do I need to add error handler here as well?

Unfortunately I cannot create a stressed environment that results in similar situation.

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

  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 brianc/node-postgres

Todos los issues de brianc/node-postgres

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.