From: | ccastello <ccastello(at)athmo(dot)eu> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | bug dans postgresql 8.4 ou PDO (php-pdo) ? |
Date: | 2012-04-20 09:16:48 |
Message-ID: | 1334913408.8204.22.camel@posteClaudeDev |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Bonjour à tous.
J'ai rencontré l'erreur "SQLSTATE[08006] [7] FATAL: limite de
connexions dépassée pour les utilisateurs standards" dans les conditions
particulières décrites ci-dessous avec PDO (php data objects).
Je cherche à identifier si le souci se situe côté POSTGRESQL ou côté PDO
En vous remerciant pour votre aide.
Le contexte :
+ serveur:
* PostgreSQL 8.4.11 on x86_64-pc-linux-gnu
* PHP 5.3.2 avec pdo_pgsql v8.4.9 module 1.0.2 revision pdo_pgsql.c
293036 2010-01-03 09:23:27Z sebastian
+ le cas se résume à celui-ci :
+ créer quelques bases "testN", N supérieur à "max_connections"
+ se connecter aux différentes bases, les unes après les autres mais
avec une erreur
Le problème : suite à l'erreur provoquée par l'absence de la table
désirée, aucune "déallocation" n'est effectuée. Du coup on atteint très
rapidement le nombre maximal de connexions autorisée.
Le script PHP permettant de reproduire le problème avec un nombre
maximum de connexions à 20, la table "toto" n'existant pas :
<?php
for ($i = 1; $i < 20; $i++) {
echo "$i : ";
try {
$user = 'usertest';
$password = 'usertest';
$dsn = "pgsql:dbname=test$i;host=localhost";
$c = new PDO ($dsn, $user, $password);
$c->query ('select * from toto;');
} catch (Exception $e) {
echo "Error! " . $e->getMessage () . PHP_EOL;
}
$c = NULL;
echo PHP_EOL;
}
Un extrait du journal de postgresql qui montre l'absence de désallocation :
2012-04-16 15:35:08.368 CEST 4954 4f8c200c.135a 1 2012-04-16
15:35:08 CEST 0 LOG 0 connexion re?ue : h?te=::1 port=33412
2012-04-16 15:35:08.383 CEST usertest test1 4954 ::1:33412 4f8c200c.135a
2 authentication 2012-04-16 15:35:08 CEST 0 LOG 0 connexion autoris?e :
utilisateur=usertest, base de donn?es=test1
2012-04-16 15:35:08.385 CEST usertest test1 4954 ::1:33412 4f8c200c.135a
3 PARSE 2012-04-16 15:35:08 CEST 2/8113 0 ERREUR 42P01 la relation «
toto » n'existe pas
2012-04-16 15:35:08.386 CEST 4955 4f8c200c.135b 1 2012-04-16
15:35:08 CEST 0 LOG 0 connexion re?ue : h?te=::1 port=33413
2012-04-16 15:35:08.400 CEST usertest test2 4955 ::1:33413 4f8c200c.135b
2 authentication 2012-04-16 15:35:08 CEST 0 LOG 0 connexion autoris?e :
utilisateur=usertest, base de donn?es=test2
2012-04-16 15:35:08.402 CEST usertest test2 4955 ::1:33413 4f8c200c.135b
3 PARSE 2012-04-16 15:35:08 CEST 3/219 0 ERREUR 42P01 la relation « toto
» n'existe pas
--
ccastello <ccastello(at)athmo(dot)eu>
Athmo - R.E.M.
From | Date | Subject | |
---|---|---|---|
Next Message | Pierre BOIZOT | 2012-04-23 09:14:39 | Create Role : expiration et contrainte sur le pwd |
Previous Message | ccastello | 2012-04-20 09:10:18 | Re: problème d'inscription ? |