IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Erreur de segmentation PHP 5.2 PDO pg_pool 9.2


Sujet :

PostgreSQL

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Erreur de segmentation PHP 5.2 PDO pg_pool 9.2
    Bonjour tout le monde,

    Après pas mal de recherches infructueuses, je viens demander un coup de pouce à la communauté :

    Je travail actuellement sur un "serveur" sous Debian squeeze 6.0.5 (x64 ), je souhaiterai utiliser une réplication pg_pool II pour synchroniser un serveur de secours à mon principal.
    La base de données Postgresql 9.1 est exploitée par 2 applications, l'une utilise pg_connect, l'autre PDO.

    Lorsque j'utilise les applications sans passer par le pool pg_pool (port 5432), tout fonctionne parfaitement.
    Lorsque je passe sur le pg_pool (port 9999), les cas suivant se produisent :

    - L'application utilisant pg_connect fonctionne sans problèmes.
    - L'application utilisant PDO crie : j'ai eu droit à de belles erreurs 500 .
    Quelques manipulations plus tard, j'ai réussi à obtenir un message d'erreur qui m'annonce que la connexion est coupée par le serveur.
    Aussi les logs de PostgreSQL ne contiennent aucune requête, elle ne sont pas transmises à la base de donnée par PHP.

    En fouillant un peu plus j'ai vu dans mon phpinfo que la version de libpq (8.4.11) ne correspondait pas à la version de Postgresql (9.1).
    Le problème pourrait il venir de là ? J'ai cru comprendre que la version de libpq affichée dans le phpinfo était celle avec laquelle PHP avait été compilé, pas celle installée lors du apt-get install php5-pdo.


    /* Extrait du phpinfo */
    PHP Version 5.3.3-7+squeeze14
    pdo_pgsql
    PDO Driver for PostgreSQL enabled
    PostgreSQL(libpq) Version 8.4.11
    Module version 1.0.2
    Revision $Id: pdo_pgsql.c 300351 2010-06-10 12:11:19Z iliaa $

    /* version de postgresql */
    PostgreSQL 9.1.6 on x86_64-unknown-linux-gnu, compiled by gcc-4.4.real (Debian 4.4.5-8) 4.4.5, 64-bit

    Toute suggestion est la bienvenue, bonne journée !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Citation Envoyé par zyra83 Voir le message
    B
    - L'application utilisant PDO crie : j'ai eu droit à de belles erreurs 500 .
    Et quelle est la requête exécutée à ce moment-là et avec quel message d'erreur est-elle rejetée?

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Estofilo, merci de ton intérêt,

    La requête est bateau au possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM utilisateurs;
    Le tout emballé dans du PDO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    try{
    	$pdo = new PDO('pgsql:host=127.0.0.1 port=9999 dbname=badappli','postgres','passwd', $options);
    	// requête simple : erreur 500	
    	$r = $pdo->query('SELECT * FROM utilisateurs;');
    	var_dump($r->fetchAll());
    } catch (Exception $e) {
    	echo "<h2>Trace</h2>";
    	echo "<pre>" . $e->getTraceAsString() . "</pre>";
    	echo "<h2>Message</h2>";
    	echo "<pre>" . $e->getMessage() . "</pre>";
    	echo "<h2>DUMP de l'exception</h2>";
    	echo "<pre>" . var_export($e, true) . "</pre>";
    }
    ?>
    L'erreur retournée via apache est une erreur 500, php ne m'affiche pas le détail. Cependant, executée via la console $php -f test.php

    J'obtiens le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    utilisateur@serveur:~$ php -f toxo_pool/test.php
    Failed loading /usr/lib/php5/zend/data/5_2_x_comp/ZendOptimizer.so:  /usr/lib/php5/zend/data/5_2_x_comp/ZendOptimizer.so: cannot open shared object file: No such file or directory
    Erreur de segmentation
    Visiblement (je n'ai ce problème qu'en ligne de commande) Zend aussi m'en veut.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    C'est vraiment 192.168. le host? Et qu'y a-t-il dans $options?

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ha désolé, faute de copier coller... le host est 127.0.0.1.
    Mon collègue vient de trouver la cause de la panne.
    La version de pg_pool installée (3.2.0) est instable (à ce jour) avec PDO, un passage sur la version plus ancienne (3.1.4) a fait disparaître le segfault (erreur de segmentation).
    Désormais la connexion fonctionne et les requêtes aussi.

    ça ne résout pas l'affichage du phpinfo mais visiblement l'erreur ne venait pas de cette différence entre la version de libpq affichée dans phpinfo et celle de postgresql.

    Merci du coup de main bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Erreur de segmentation, connexion PHP CLI et SQL Server
    Par marcandre dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2015, 16h11
  2. PHP-CLI : erreur de segmentation
    Par austriker dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 04/06/2009, 16h54
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo