2010-08-01 6 views
0

Après que mon hôte a activé suPHP, un script qui fonctionnait précédemment a expiré après ~ 3min (il varie, mais le script n'a pas fonctionné plus de 3, AFAIK).
La partie impaire est, le script ne jette pas les erreurs que je peux voir (et oui, le rapport d'erreur PHP complet/enregistrement est activé et toutes les requêtes MYSQL ont été vérifiées pour les erreurs, aussi) il s'arrête simplement. L'actualisation de la page chargera plus de données que le script est censé traiter (probablement parce que les requêtes MYSQL ont été mises en cache ...), mais s'il y a beaucoup de données à traiter, elles ne seront jamais complètement exécutées. L'autre bizarrerie est que je peux exécuter des scripts de test pour plus de 10 minutes sur le même hôte w/set_time_limit(0);/etcDélai de script suPHP/PHP

Quelqu'un d'autre a dû faire face à cela, ou savoir ce qui est à l'origine du délai d'attente et comment y remédier (en supposant que l'abandon de suPHP n'est pas une option). Il y avait aussi une mise à jour simultanée de PHP 5.2.x vers 5.3.x, mais je doute que cela cause le problème. :/

Répondre

0

J'ai vu cela se produire lorsque la mémoire est épuisée - le script se termine juste sans erreur. Si vous avez une boucle, essayez d'utiliser les fonctions de mémoire pour vider l'état de la mémoire. En outre, utilisez phpinfo() pour voir quelle est votre allocation de mémoire maximale - le passage à suPHP peut avoir changé cela à votre détriment.

+0

Bonne idée, mais le script est assez bien écrit, donc il utilise la mémoire assez régulièrement. L'utilisation n'est jamais passée au-dessus de 6,7 Mo, ce qui correspond à environ 1/10 de la limite, et il utilisait moins de mémoire que l'utilisation de pointe quand il s'est écrasé. :( – phpwns

+0

Que diriez-vous de vérifier les logs du serveur pour segfaults? – lotsoffreetime

+0

pensée intéressante, jamais trouvé aucun de ceux dans les journaux d'erreurs que je peux accéder si. Heureusement suPHP est parti maintenant, donc ce n'est plus un problème. Cela est dû au fait que suPHP expire en fonction de l'activité MYSQL, bien que je ne sache pas exactement quoi (par exemple, limite de requête, temps global MYSQL par script, ou limite de temps par requête, etc.). – phpwns