Salut,
Configuration:
Code : Sélectionner tout - Visualiser dans une fenêtre à part uname -aHP-UX d241s066 B.11.23 U ia64 0530371866 unlimited-user license
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./httpd -versionProblèmeServer version: Apache/2.0.54 HP-UX_Apache-based_Web_Server
Server built: Sep 12 2005 14:20:59
Je suis en train de faire un test de charge sur l'environnement ci-dessus et je suis confronté au problème suivant.
j'ai un script php envoyant des requêtes HTTP (POST) en boucle. Pour chaque requête envoyée, une nouvelle connexion est établie (fsockopen...). Chaque requête envoie un paquet XML qui est parsé par le script PHP en bout de chaîne et qui stocke certaines infos dans une DB SQLite.
Pour chaque requête envoyée, j'ai bien un code de retour 200 (OK) d'apache.
Malgré le return code 200, je sais que quelque chose ne fonctionne pas car ma DB n'est pas mise à jour correctement. Je sais que PHP se plante à un endroit mais je n'arrive pas à récupérer le message d'erreur.
Je ne lis pas la réponse d'apache car dans ce cas, je n'ai plus aucun problème, le processing devenant trop lent. Le problème auquel je suis confronté est apparement dû à la rapidité de l'envoi des requêtes.
Dans le access_log d'apache, je vois qu'il me renvoie cette ligne pour une requête ayant été traitée correctement
Et celle-ci dans le cas où il y a manifestement eu un plantage PHP10.29.167.130 - - [14/Nov/2005:17:05:03 +0100] "POST /CALLBACK/xpCallback.php HTTP/1.1" 200 22
La dernière colonne, qui correspond au nombre de bytes lu par apache équivaut à 737. Je mettrais ma main à couper qu'il s'agit d'un message généré par PHP genre "Fatal error....." qui prend 737 bytes mais je n'arrive pas à lire ce fameux message, puisque apache ne l'enregistre nulle part et que ce problème est sporadique, je n'arrive donc pas à le "catcher" dans le script.10.29.167.130 - - [14/Nov/2005:17:05:03 +0100] "POST /CALLBACK/xpCallback.php HTTP/1.1" 200 737
Je précise que ce script PHP (exactement le même) fonctionne parfaitement sur Linux,AIX,Windows et Solaris. Seule la plateforme HP pose problème.
J'ai même utilisé un sniffer (packetyzer) pour voir tout ce qui transitait sur le réseau et je n'ai aucune trace correspondant à ce problème.
Est-ce que quelqu'un sait si au niveau d'apache si je peux éventuellement lui demander de stocker les bytes reçus plutôt que le nombre de bytes reçus?
Si vous avez une autre idée, elle est bienvenue.
Merci![]()
Partager