Erreur PHP durant la mise à jour 4.0.56

Bonjour,
J’ouvre un sujet dédié à mon soucis
La mise à jour 4.0.56 plante à 55% avec une erreur PHP : PHP Fatal error: Out of memory (allocated 4582277120) (tried to allocate 20480 bytes) in /var/www/html/core/php/utils.inc.php on line 916
la Machine est une VM esxi sous debian 9 à jours. j’avais 2Go de ram allouée, je suis passé à 4 sans amélioration. L’installation à plusieurs mois, elle a été faite en suivant les Tutos.
Pour avoir l’historique complet j’avais un jeedom 3 sur debian 8, j’ai créé il y a plusieurs mois une machine debian 9 sur laquelle j’ai restauré un backup…
Je suis passé en v4 sur cette machine pendant le confinement.
Je n’ai jamais modifié la configuration php par défaut.
la machine doit etre rebooté en « hard » pour reprendre la main.Au redémarrage je suis toujours sous 4.0.54 mais je sais pas si c’est dans un état stable du coup j’ai restauré un backup précédent.
Sur les conseils de @Fabrice j’ai essayé de passer le /tmp/jeedom à 256Mo mais le soucis reste présent.
j’ai fait des df -h successifs pendant la mise à jour, je joints le résultat, au moment du plantage la commande ne fonctionne plus et renvoie l’erreur : -bash: fork: Ne peut allouer de la mémoire
je joints également la capture de la santé de jeedom avant la mise à jours et le log de la mise à jours.
Merci d’avance pour votre aide.
log espace disque.txt (582 Octets) log update.txt (2,9 Ko)

T’as rebooté ou umount all apres avoir changé la taille de /tmp ?
Histoire d’être sur que ton fstab est bien chargé avec la nouvelle config ?

ulimit -a te retourne quoi ? T’as une partition de swap ?
Les fork can not allocate, c’est souvent lié au swap ou aux droits.
T’as essayé de te logguer en root plutot que via sudo ?

oui j’ai rebooté
voici le fstab et le resultat du ulimit -a.
le fork can allocate ne survient que qd la mise à jours plante.
ulimit-a.txt (735 Octets) fstab.txt (813 Octets)

@Fabrice pense à un problème de configuration php, mais cela dépasse mon niveau, surtout sous linux, si quelqu’un ayant les compétences peux m’aiguiller…

Que donne la commande ;
free mem

Sinon oui, je vous l’ai indiqué sur l’autre fil, il semble qu’il faut augmenter la mémoire de PHP.

Sinon, vous avez une erreur réseau, corrigez la aussi.

Une idée en vrac, désactivez vos plugins, redémarrez la box et testez de nouveaux.

voici le résultat du free mem : free mem.txt (233 Octets)
augmenter la mémoire PHP ok, mais je ne sais pas trop comment faire, j’ai vu qu’il fallait modifier le php.ini mais j’en trouve plusieurs occurrence sous débian, je ne sais pas trop lequel modifier ni quoi modifier…
en ce qui concerne l’erreur réseau je n’ai jamais compris, j’ai bien la bonne adresse externe de configurée, celle que je tape depuis l’extérieur pour accéder au jeedom mais l’erreur a toujours existé.
Je vais essayer de tester la désactivation des plugins
Merci :slight_smile:

Montrez la page de configuration réseau.

voici la page réseau, j’ai bien sur masqué les informations mais ce sont les bonnes qui sont renseignées, aussi bien l’ip locale que le domaine externe.

Supprimez le 80 en http.
Regardez ensuite la page Santée.

Bonjour @fonzy
Les erreurs à la fin du fichier log update.txt du 1er post sont :

Check jeedom consistency
[START CONSISTENCY]
[START CHECK AND FIX DB]
[END CHECK AND FIX DB]
Check jeedom database | OK
Check filesystem right | OK
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 4 582 277 120) (tried to allocate 20480 bytes) in /var/www/html/core/php/utils.inc.php on line 916

Soit 4Go de mémoire déjà allouée pour le php … pour les 256 Mo (sur une smart) dans php.ini

Sur la page http://jeedom/index.php?v=d&p=system
En cliquant sur Consistance
image
Pouvez-vous ensuite fournir le log consistency ?
Apparemment, c’est à cette étape qu’il y a un problème puisqu’il n’y a pas [END CONSISTENCY]

@Fabrice, meme erreur dans la page santé aprés avoir supprimé le port 80 dans le http .
@jpty en lançant le test de consistance j’ai les memes symtomes, la machine fige. je suis allé sur la page santé juste apres l’avoir lancé, il n’y avait plus que 2% de memoire libre.
le log est le suivant :
[START CONSISTENCY]
[START CHECK AND FIX DB]
[END CHECK AND FIX DB]
Check jeedom database…OK
Check filesystem right…OK
mmap() failed: [12] Cannot allocate memory
mmap() failed: [12] Cannot allocate memory
PHP Fatal error: Out of memory (allocated 4456448000) (tried to allocate 20480 bytes) in /var/www/html/core/php/utils.inc.php on line 916
apres un moment, la machine reponds a nouveau, un free mem à ce moment la donne le resultat suivant :
fonzy@jeedom:~$ free mem
total used free shared buff/cache available
Mem: 3084616 334408 2574024 22076 176184 2583036
Swap: 2095100 459844 1635256

à ce moment la la mémoire disponible est remonté à 84% dans la page santé.

Merci à vous deux pour votre temps.

Avez-vous désactivé 100% de vos plugins ?

  • Cela peut se faire rapidement en renommant le dossier /plugins en /pluginsdesactv par exemple (+ redémarrage)
    L’idée est de voir qui consomme votre RAM.
    En fonction du ok/nok, il est alors sage d’attendre le retour de @jpty sur un paramétrage PHP qui ne serait pas conforme chez vous.

Vous avez un certificat pour être en HTTPS ou vous avez juste coché cela, sans trop savoir pourquoi ?
Si vous n’avez pas de certificats à vous, placez https en http pour l’accès externe et supprimez le port 443

Le pb dans consistency est que entre le message Check filesystem right…OK et la sortie normale par [END CONSISTENCY] il y a une centaine de lignes de code sans aucun message de progression.

Il faudrait pouvoir ajouter des messages et voir la progression.
Le fichier est /var/www/html/install/consistency.php

@Fabrice et @jpty oui, j’ai un certificat, j’ai tout de même essayé de le régler en http mais cela ne change rien. Est ce que ce ne serait pas simplement un problème de loopback ? derrière une livebox les machines du réseau local ne peuvent pas joindre l’ip externe…
Après avoir désactivé tout les plugins en renommant le répertoire le test de consistance fonctionne trés rapidement sans consommer toute la mémoire.
Que me conseillez vous, faire la mise à jours du core dans cet état et réactiver les plugins?
ou bien rajouter des commentaires dans le fichier php pour voir quel est le soucis?

Renommez le dossier des plugins en /plugins

Puis, désactivez 50 % des plugins.

  • Testez

  • Si le problème est présent, c’est dans les 50% des plugins actifs que le problème se pose.
    Il faut /2 à chaque fois et vous allez rapidement tomber sur LE plugin qui créer ce problème.

une petite dichotomie quoi :slight_smile:
je les désactive par l’interface, pas en renommant les répertoires je suppose?

@Fabrice
j’ai un soucis, après renommage du répertoire en /plugins et un reboot, je n’ai plus rien sur le dashbord, uniquement les pièces de la maison que j’avais défini mais aucun équipement
il y a des messages dans les warning :
2020-05-31 11:34:01 cron [Erreur] Classe ou fonction non trouvée networks::update()
2020-05-31 11:34:01 cron [Erreur] Classe ou fonction non trouvée Monitoring::pull()
2020-05-31 11:34:01 cron [Erreur] Classe ou fonction non trouvée livebox::pull().
il n’y a plus rien dans les plugins

Edit: sans doute mauvaise manipulation de ma part, je me retrouvait avec un /plugins/pluginsdesactv. j’ai rectifié ca et je retrouve tout les plugins désactivés, je vais en profiter pour les réactiver suivant ta méthode.

Non consistance a recréé un répertoire plugins vide puisqu’il ne trouvait plus l’ancien.

Si vous voulez ajouter des messages pour trouver la cmd qui fait planter, il faut modifier install/consistency.php
image


bon, tout les plugins sont réactivés et le test de consistance fonctionne normalement.
du coup j’ai lancé la mise à jour, elle est passés sans problème
Le problème est donc réglé mais si quelqu’un a une idée d’explication logique …
en tout cas encore merci à tout les deux

1 « J'aime »