Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 17/10/2014 10:20:53
- Postgres.0
- Membre
unexpected EOF on client connection with an open transaction
Bonjour,
j'ai un traitement batch prévu tous les soirs à 2h, depuis quelques mois.
Sauf qu'hier soir, ce traitement n'est pas passé.
Quand j'ai analysé la log postgres, je suis tombé sur deux erreurs:
unexpected EOF on client connection with an open transaction
en suite,
FATAL remaining connection slots are reserved for non-replication superuser connections
Juste avant 2h, j'ai plusieurs insertions en base qui echouent.
Est ce qu'on peut dire que chaque insert échoué correspond à une transaction mal fermée?
Un autre script, tjs peu avant 2h, lance plusieurs requêtes concurrentes ( le tout entre un BEGIN et un END).
Est-ce-que je peux dire que chaque requête monopolise une connexion?
Pour information,
je suis sur une 9.3
le max_connections est 200
Comment pourrai-je savoir la raison de mon problème?
Merci d'avance!
Cordialement
Hors ligne
#2 17/10/2014 11:18:24
- ruizsebastien
- Membre
Re : unexpected EOF on client connection with an open transaction
Bonjour,
Oui chaque BEGIN correspondra avec une session.
Pour le "unexpected EOF..." ça sent la coupure réseau.
Cordialement,
Cordialement,
Sébastien.
Hors ligne
#3 17/10/2014 14:40:36
- Postgres.0
- Membre
Re : unexpected EOF on client connection with an open transaction
Quand il y a une coupure réseau, la connexion n'est pas rendu proprement au sreveur?
Dernière modification par Postgres.0 (17/10/2014 14:55:12)
Hors ligne
#4 17/10/2014 15:03:23
- gleu
- Administrateur
Re : unexpected EOF on client connection with an open transaction
Est ce qu'on peut dire que chaque insert échoué correspond à une transaction mal fermée?
Tout dépend de ce que vous entendez par mal fermée ? une transaction est ouverte ou fermée. Mal fermé n'a pas de sens en soi.
Un autre script, tjs peu avant 2h, lance plusieurs requêtes concurrentes ( le tout entre un BEGIN et un END).
Est-ce-que je peux dire que chaque requête monopolise une connexion?
Tout dépend du script. Le script peut ouvrir une connexion et lancer toutes les requêtes sur la même connexion (auquel cas il monopolise une connexion). Il peut aussi ouvrir une connexion par requête, et peut du coup monopoliser plusieurs connexions.
Comment pourrai-je savoir la raison de mon problème?
En lisant le code du script, en lisant les traces de PostgreSQL. Mais il est possible que vous ne puissiez pas le déterminer parce que vous n'avez pas suffisamment de traces.
Quand il y a une coupure réseau, la connexion n'est pas rendu proprement au sreveur?
Là aussi, ça dépend Suivant la coupure, suivant le système d'exploitation et sa configuration, ça peut être immédiat comme dans quelques temps (style plusieurs minutes).
Guillaume.
Hors ligne
#5 17/10/2014 15:19:24
- Postgres.0
- Membre
Re : unexpected EOF on client connection with an open transaction
Merci beaucoup, c'est clair!
Hors ligne
#6 17/10/2014 15:21:34
- Postgres.0
- Membre
Re : unexpected EOF on client connection with an open transaction
Mon problème vient d'un souci au niveau réseau. Il y a eu une attaque qui a provoqué plusieurs coupures réseaux.
Hors ligne