Does pg-cursor return empty result even on network error?
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
- 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 82/100
-
area-deployment area-integrations triage:bot-seen
Dificultad 2/5 Medio día Aptitud para principiantes 86/100
-
Issue-Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
sugarlabs/musicblocks#8924 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
ArduPilot/ardupilot_wiki#8088 ·
-
[BUG] createTool tools cannot be registered with Mastra when exactOptionalPropertyTypes is enabled Abiertocustomer-eng status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100