PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#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 smile 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

Pied de page des forums