Probleme en nettoyage de BdD

Bonjour,

Suite à un equipement qui a perdu une partie de ces histo j’ai lance un nettoyage de base de données et cela m’a donne ces messages :

3062|Cleaning cmd : [Maison][Jeedom interne][Mettre à jour]
3063|Cleaning cmd : [Maison][Jeedom interne][Backuper]
3064|Remove cmd (no corresponding eqLogic found) : [Rafraichir]
3065|PHP Fatal error:  Uncaught Error: Call to a member function setStatus() on bool in /var/www/html/core/class/cmd.class.php:1137
3066|Stack trace:
3067|#0 /var/www/html/install/cleaning.php(49): cmd->remove()
3068|#1 {main}
3069|thrown in /var/www/html/core/class/cmd.class.php on line 1137

Seulement un probleme de beta ou plus profond ?? @Loic , si tu passes par là …

Hello,

Normalement ce cas ne devrait pas exister, du moins il doit être très rare.
Lorsqu’il y a remove d’un EqLogic (méthode censé être utilisé), les cmd sont supprimées aussi.
Il semble que tu as eu ce cas exceptionnel.

Mais n’empêche qu’il y a quelque chose qui n’est pas logique dans le core

Le cleaning supprime la cmd car elle n’a pas d’EqLogic connu :

Mais lors du remove d’une cmd, le core veut modifier le status de l’EqLogic (qui n’existe pas du coup :upside_down_face:) :

Il manque certainement une vérification is_object($eqLogic) avant le setStatus.

C’est Idem sur toutes les branch.

Edit :

J’ai effectué le test, il manque bien la condition.
J’ai poussé un PR.

2 « J'aime »

Merci pour le pr effectivement c’est un cas qui doit pas arriver souvent. J’ai tout validé

2 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.