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

Symfony PHP Discussion :

PHP Fatal error: Out of memory


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut PHP Fatal error: Out of memory
    Bonjour,

    Il y a +- 2mois, j'ai mis en ligne une nouvelle version de mon site qui était sous symfony 2.7.
    Cette nouvelle version utilise actuellement la version 4.1 de symfony.
    Depuis cette nouvelle version, j'ai par moment une erreur de type " PHP Fatal error: Out of memory" lorsque j'effectue certaines action. Après plusieurs test, j'ai l'impression que l'erreur vient de monolog et de l'insertion de logs au fichier.
    J'ai déjà effectué de nombreux changement, test,... A un moment, ca redevient normal, plus d'erreur mais l'erreur revient après quelques heures ou quelques jours.
    Je n'arrive pas à trouver le réel origine du problème.
    Je suis sur un vps avec php 7.2 et 4Go de ram.
    J'ai remarqué que lorsqu'il y a cette erreur, l'utilisation de la ram monte de 10% et je dois faire un "sudo service php7.2-fpm restart" pour que ca redescende.

    Voici les message d'erreur:
    2018/09/14 13:04:04 [error] 22789#22789: *12787 FastCGI sent in stderr: "PHP message: PHP Fatal error: Out of memory (allocated 933232640) (tried to allocate 20480 bytes) in /home/animauxperdus/www/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107
    PHP message: PHP Fatal error: Out of memory (allocated 933232640) (tried to allocate 73728 bytes) in /home/animauxperdus/www/vendor/composer/ClassLoader.php on line 444" while reading response header from upstream, client: 217.136.17.89, server: animauxperdus.net, request: "GET /utilisateur/annonce/ajouter/chien/perdu HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "animauxperdus.net", referrer: "https://animauxperdus.net/inscription/"
    2018/09/14 13:04:42 [error] 22789#22789: *12787 FastCGI sent in stderr: "PHP message: PHP Fatal error: Out of memory (allocated 803209216) (tried to allocate 20480 bytes) in /home/animauxperdus/www/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107
    PHP message: PHP Fatal error: Out of memory (allocated 803209216) (tried to allocate 20480 bytes) in /home/animauxperdus/www/vendor/symfony/debug/ErrorHandler.php on line 596" while reading response header from upstream, client: 217.136.17.89, server: animauxperdus.net, request: "GET /utilisateur/annonce/ajouter/chien/perdu HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "animauxperdus.net", referrer: "https://animauxperdus.net/"
    2018/09/14 13:51:05 [error] 22789#22789: *13088 FastCGI sent in stderr: "PHP message: PHP Fatal error: Out of memory (allocated 851443712) (tried to allocate 20480 bytes) in /home/animauxperdus/www/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107
    PHP message: PHP Fatal error: Out of memory (allocated 851443712) (tried to allocate 20480 bytes) in /home/animauxperdus/www/vendor/symfony/debug/ErrorHandler.php on line 596" while reading response header from upstream, client: 217.136.17.89, server: animauxperdus.net, request: "GET /utilisateur/annonce/ajouter/chien/perdu HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "animauxperdus.net", referrer: "https://animauxperdus.net/"

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    En faisant des tests, j'ai remarqué que si je ne met pas de config pour monolog, le site tourne parfaitement.
    Par contre, dès que je met une config, même la plus basique, j'ai une erreur "PHP Fatal error: Out of memory"

    Donc le problème viendrait de monolog mais je ne comprend pas la raison et je ne sais pas quoi faire pour le résoudre

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    Tes fichiers de logs deviennent probablement volumineux. Il est possible d'augmenter la taille de la mémoire tampon (option buffer_size) du gestionnaire des logs fingers_crossed. Cela permet d'exécuter des scripts plus longs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    monolog:
        handlers:
            main:
                type: fingers_crossed
                action_level: error
                buffer_size:  500 #<- ici 
                handler: nested
    Après pour des fichiers de logs assez volumineux, tu peux utiliser le gestionnaire de logs logrotate(à installer en fonction de l'OS). Logrotate permet de supprimer les anciens logs.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    J'ai déjà essayé cette solution, j'avais mis buffer_size à 50 mais le problème persistait.

    Par contre, j'ai remarqué dans les logs (quand ca fonctionne) qu'il y a plusieurs ligne du genre:
    [2018-09-13 22:39:11] cache.WARNING: Failed to save key "%5BSymfony%5CBundle%5CTwigBundle%5CController%5CExceptionController%5D%5B1%5D" (array) {"key":"%5BSymfony%5CBundle%5CTwigBundle%5CController%5CExceptionController%5D%5B1%5D","type":"array","exception":"[object] (ErrorException(code: 0): file_put_contents(/home/animauxperdus/www/var/cache/prod/pools/uwWTOsxp9U/5b9acaefba2d61.05716588): failed to open stream: Permission denied at /home/animauxperdus/www/vendor/symfony/cache/Traits/FilesystemCommonTrait.php:87)"} []
    Ce serait un problème de permission mais pourtant le cache fonctionne.
    J'ai dejà essayé de supprimer le cache manuellement et de faire cache:clear dans la console.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    quelle version de la lib symfony/monolog-bundle utilises-tu? le problème persiste-t-il en mettant à jour cette lib notamment vers la version 3.3.0 qui est la dernière version?

    Ce serait un problème de permission mais pourtant le cache fonctionne.
    J'ai dejà essayé de supprimer le cache manuellement et de faire cache:clear dans la console
    ça peut fonctionner pour le cache est-ce pour autant que les dossiers des logs(ou leurs fichiers) ont des bonnes permissions. Dans tous les cas apache ou nginx doit avoir les droits nécessaires pour écrire dans les fichiers de log.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    J'ai la version 3.3.0

    Pour les logs, le dossier log à la permission 777 et les fichiers générés ont les permissions 644. Par contre, le propriétaire est soit www-data ou l'utilisateur. Je pense que ca dépend si c'est une tache cron qui crée le fichier ou la navigation du site.
    Mais je ne sais pas si c'est ça qui pose problème.

    Et maintenant, le problème est permanent, même avec une config de monolog vierge

Discussions similaires

  1. Installation ZendFramework : Fatal error: Out of memory
    Par Jarodd dans le forum Zend Framework
    Réponses: 0
    Dernier message: 14/11/2012, 22h51
  2. [PHPExcel] PHP Fatal error: Out of memory
    Par bdptakix dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 12/09/2012, 11h20
  3. Fatal error: Out of memory (allocated 30408704) (tried to al
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/01/2012, 15h06
  4. Fatal error: Out of memory
    Par Jonathan.Harvey dans le forum Général Java
    Réponses: 4
    Dernier message: 28/03/2011, 18h48
  5. "GLUT Fatal Error: out of memory" sous Mac OS
    Par shams dans le forum GLUT
    Réponses: 3
    Dernier message: 26/04/2007, 15h03

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