|
||||
Ouverture de sessionNavigationContactez-nousAdministration du site : RechercheSujets du forumSujets actifsNouveaux sujets:SyndicationSondageQuelle est la version de PostgreSQL la plus répandue sur vos serveurs ? 8.3 10% 8.2 42% 8.1 40% 8.0 2% 7.4 6% 7.3 ou antérieure 0% Nombre de votes: 48 |
Attention à la gestion des exceptions ou comment mettre PostgreSQL à genou avec un petit bout de PL/pgSQL...Technique | Attention à la gestion des exceptions ou comment mettre PostgreSQL à genou avec un petit bout de PL/pgSQL...Par SAS le 21/09/2004 - 10:58 Un client nous a appelé pour nous faire part du comportement étrange de sa base de données. Son intranet tourne depuis plus de trois ans sans problème, mais bizarrement, depuis quelques semaines, le postmaster tombe plusieurs fois par jour. Impossible de lancer une indexation ou un vacuum... Après quelques recherches, je m'aperçois en regardant les traces qu'une requête utilisant une fonction écrite en PL/pgSQL semble conduire à la chute du postmaster. Récupérant le code de la fonction, il m'apparaît qu'aucun test n'est fait pour vérifier les paramètres passés à la dite fonction avant de l'appeler récursivement.
Cette fonction est en effet appelée avec un argument NULL, qui produit l'appel récursif de cette fonction. Résultat des courses, la pile des appels produit immanquablement une sortie en erreur de la fonction Qui plus est, il est possible que le postmaster redémarre. Si votre application utilise des connexions persistantes au serveur de bases de données, ces connexions ne sont pas relâchées, encore quelques appels à la fonction incriminée, et votre serveur est à genoux. En conclusion :
|
|||
© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.