libertempo / web

Application web de gestion des congés en ligne
GNU General Public License v2.0
67 stars 63 forks source link

PHP Fatal error: Allowed memory size of X bytes exhausted #900

Open ss2l opened 4 years ago

ss2l commented 4 years ago

Bonjour,

Depuis quelques temps, certains utilisateurs, et ils sont de plus en plus nombreux, ne peuvent plus faire de demande de congés. Ils valident leurs demandes mais la page ne charge pas complètement et aucun message d'erreur ne s'affiche.

Il est possible que le problème soit lié aux mises à jour récentes du serveur (PHP en particulier).

Logs Apache2

A chaque fois qu'un utilisateur impacté tente d'ajouter des congés, on a l'erreur suivante dans les logs Apache :

[php7:error] [pid 7251] [client 10.250.14.9:0] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 16384 bytes) in /var/www/libertempo/includes/SQL.php on line 152

Le serveur

Les clients

J'ai tenté d'augmenter la limite de mémoire de PHP memoryy_limit=512M mais sans succès. Avez-vous des idées ?

Merci d'avance pour votre aide.

ss2l commented 4 years ago

Le problème est identifé.

Quand Alain fait une demande de congés et que Bernard ET Cécile sont tous les deux déjà en congés, ca boucle indéfiniement dans le code. On a A -> B -> C -> B -> C -> B -> C ....

Ce qui fait une utilisation mémoire importante et aussi une erreur de ce type :

[php7:notice] [pid 8230] [client 10.250.14.9:0] PHP Fatal error: Uncaught Error: Maximum function nesting level of '256' reached, aborting! in /var/www/libertempo/includes/SQL.php:152

Donc il faudrait gérer le cas ou il y a une "boucle" dans les responsables et que ceux-ci sont en congés en même temps.

Merci d'avance pour votre aide

stale[bot] commented 2 years ago

Cette issue a été marquée « stale » car elle n'a pas eu d'activité récente. Elle sera fermée si aucune activité ultérieure ne survient. Merci de vos contributions.