Erreur sur Monitoring

Hello,

Je ne suis pas un expert en PHP (même si je « joue » avec régulièrement), mais la solution proposée par @ktn m’étonne, et, je pense, ne fait que « contourner » le problème.

« set_include_path » est une fonction standard de PHP, et lorsqu’on souhaite ajouter un chemin au path existant (ce qui est le cas ici), il faut justement utiliser la variable PATH_SEPARATOR et la concaténation de chaines (ici c’est le « . » qui permet cette construction de la chaine de caractères à partir des 3 éléments présents dans le code).

Donc faire la modif proposée ne fait que « faire planter » les appels « include(…) » qui sont en dessous (et en plus pourrait avoir d’autres conséquences dans Jeedom, car le path d’origine du coup n’existe plus car il est écrasé par la valeur que l’on met dans le set_include_path ici.

Donc forcément ca résout le problème pour la plupart d’entre nous, car ce sont ces 4 lignes d’ajouts juste en dessous qui rentrent en conflit avec d’autres plugin qui utilisent la même librairie mais dans une version différente (comme le plugin VMWare qui l’ajoute à son répertoire ressources et utilise donc lui aussi cette librairie SSH2)

Par contre il y a bien un soucis dans la ligne d’origine de ce set_include_path :

Avant :

set_include_path(get_include_path() . PATH_SEPARATOR . '/phpseclib');

Après :

set_include_path(get_include_path() . PATH_SEPARATOR . '/usr/share/php/phpseclib');

Car il faut indiquer le chemin complet linux pour ajouter cela au path des include.

Bon par contre, malgré cette modif (où le path du coup est bon), les lignes suivantes font malgré tout planter Jeedom… :slightly_frowning_face:

J’ai continué un petit peu mes tests, et à la place d’utiliser les librairies système, j’ai inclus dans le code Monitoring les fichiers phpseclib du plugin vmware, et bien cela fonctionne ensuite, et en regardant les fichiers inclus dans le plugin vmware, la librairie phpseclib est une version qui semble plus ancienne que celle incluse dans le système (celle installée par le plugin Monitoring).

Après, mes investigations se sont arrêtées là faute de temps…

Bonne journée,
TiTidom.

3 « J'aime »

Ah tiens ça faisait longtemps que tu ne m’avais pas agressé, c’est peut-être ton langage courant mais je le prends pour une agression.
En fait ça date depuis ton message d’adieu ici quand tu nous a annoncé qu’on était des moins que rien et que tu partais sur HA car la qualité des forums anglo-saxon étaient de ton niveau contrairement à nous, pauvre franchouillard.

Bref, pour en revenir à tes réflexions qui ne sont surement pas de qualité anglo-saxonnes, le fait que le plugin est orphelin et qu’un gars essaie de le dépatouiller c’est louable, sympa, utile etc … mais n’est pas à mes yeux une raison pour laisser une situation dériver.
Puisque le changelog indique que c’est une mise à jour pour préparer Debian 12 que nous n’avons pas en prod, il aurait dû avec l’aide de qui de droit faire une branche beta et demander aux beta-testeurs de faire ce travail de debug. Je vois que toi par exemple tu participes activement aux tests pour la V4.4 et pour cette raison et malgré tes agressions récurrentes ces dernières années, je commençais presque à te trouver sympathique, donc tu vois de la compassion j’en ai :slight_smile: et de plus comme tu a une Debian 12 tu aurais pû l’aider à tester.
Excuses nous d’être de pauvre et simple utilisateur, mais on a pas tous de multiples vm pour tester ce qui sort en stable.

« Le beta test c’est basé sur de la bonne volonté.
Participes et y aura peut etre plus de souci de remontés. »

Dis moi où tu fais du beta test sur une version stable en production, c’est ce que tu as trouvé sur HA peut-être ?
J’ai testé les releases qui sortaient sur ma jeedom de test et j’ai remonté l’info comme quoi cela faisait toujours une erreur. A mon niveau que veux tu que je fasse de plus. Je suis toujours disponible en mp pour les tests et je n’ai jamais refusé ma pauvre contribution de simple utilisateur lambda sans connaissance à quiconque.

Au passage j’en profite pour dire à celui qui a repris et que je ne connais pas que j’espère qu’il ne s’est pas senti agressé. Je le précise car bien que m’étant relu sans trouver de trace de méchanceté, l’écrit a parfois un sens ressenti qu’une discussion en face à face avec l’expression du visage n’a pas.
Bien cordialement

1 « J'aime »

J’imagine un scénario :

  • Quelqu’un a proposé une PR pour aider sur le GitHub,
  • le propriétaire du plugin a cru bien faire et a intégré la PR sans trop vérifier (il est peut-être sur HA :slight_smile: )
  • Pas de bol, cela a été fait sur la master et pas sur develop.

Bref, une série de pas de bol, on va dire.
Maintenant, refaire le monde en cherchant pourquoi le code est en stable et pas en bêta, ça ne fait pas trop avancer le schimiliibilik.

Comme beaucoup de plugin abandonné, il faut qu’un repreneur avec les reins solides se propose, que le plugin soit transféré par Jeedom (même sans l’accord de l’auteur ?) et ensuite les PR pourront se faire en masse vu que les solutions sont déjà dans les fichiers fournis dans ce même post.

De plus, je ne sais pas si l’auteur passe ici pour lire, mais le ton commence à monter inutilement.

Edit : pour les PR, c’est ici visiblement:

1 « J'aime »

Re,

J’ai continué quelques « tests croisés » : j’ai modifié le plugin VMWare pour qu’il utilise la librairie phpseclib du système plutôt que la sienne en propre qui est incluse dans le plugin.

Eh bien suite à cette modif, jusque là (ca fait quelques heures que ca tourne), je n’ai plus de plantage de Jeedom (sur mon jeedom de test en Debian 11 et Jeedom 4.4, mais aussi sur un Jeedom en Debian 10 en version 4.3.17) et les deux plugins fonctionnent de concert (mon plugin vmware va bien mettre à jour les infos de l’ESX et des VM qui tournent dessus, et le plugin monitoring se connecte bien à un linux distant pour aller chercher les infos concernant cette machine en SSH).

Par contre, sur mon Jeedom de tests, je n’ai un conflit qu’entre le plugin Monitoring et le plugin vmware : certains d’entre vous avaient des conflits avec d’autres plugins ?

Bonne journée,
TiTidom.

1 « J'aime »

je réagis juste sur un point car il y a une petite méprise je pense: le but n’est pas la compatibilité du plugin avec un jeedom installé sur debian 12

donc oui, on a déjà potentiellement du debian 12 en prod et certains souhaitent probablement monitorer ces installations

Bonjour,

Il me semble qu’il y avait aussi un problème avec plugin-nut_free.

1 « J'aime »

Hello,

Oups, en effet… :joy: je viens d’installer le plugin via le market à l’instant sur mon jeedom de tests… J’ai une belle page blanche en retour sur l’interface Jeedom (plantage de jeedom) :slight_smile:

Dès que j’aurai 5 min, je regarderai si je trouve les mêmes causes qu’avec le plugin vmware dans le code.

Merci pour l’info,
Bonne soirée,
TiTidom.

Re,

C’est bien le même soucis pour Nut_Free des lignes d’inclusions de la librairie phpseclib, d’ailleurs avec les mêmes lignes de code que dans le plugin Monitoring. En les modifiant (pour être aligné avec Monitoring et vmware), ca corrige le plantage de l’interface Jeedom comme pour vmware. (après je ne suis pas allé plus loin avec ce plugin que je n’utilise pas au quotidien).

TiTidom.

2 « J'aime »

Dc tester le plugin en beta sans un panel consequent pour tomber sur ces cas là c’est pas evident !

Y en a ici qui tente de désespérement donner du feedback sur les betas … j’ai demandé y a 2 mois qu’on mette en ordre le bazar pour que je puisse enfin envoyer du feedback sur les salons prévus pour …
On m’a répondu du support que c’est en ordre … toujours pas moyen de poster pourtant …

Alors, faut pas s’étonner qu’il y a quasi pas de beta testeurs LOL
Quel bazar dites moi !!!

Par contre, sorry, mais vu la nature de l’erreur qui fout par terre la moitié de jeedom, je serais curieux de voir c’était quoi les critères d’acceptance pour dire que ça marche … t’installes le truc, t’as direct erreur 500 après un redémarrage jeedom …
Je veux bien tout entendre mais là …

Après si on cherche un repreneur, je veux bien regarder, mais je suis pas le king du PHP, moi à la base c’est dotNet

Plein de bon sens dans ce que tu dis, j’ai pas été regarder sur le repo, je suis sur GSM, mais effectivement, c’est peut etre ce qu’il s’est passé … direct sur Master … ceci dit, pour publier le plugin faut quand meme appuyer sur le bouton dans le market … enfin, il me semble me souvenir que c’est ainsi … Mystère et boules de gomme

Je confirme … et ça foutait le plugin Philips Hue (version beta) par terre également

C’est logique car la modif phpsec a d’abord été réalisée sur Nut_free, puis a été ensuite transposée sur monitoring (même besoin simultané sur les 2 plugins).

D’un autre coté, si les tests se font sur des instances rincées à blanc de jeedom, c’est pas non plus hyper relevant comme testing … dans le sens où de la manière dont son gérées les dépendances sous linux, forcément un upgrade de dépendances peut potentiellement tout péter …

Une bonne VM de test embarquerait un panel plus conséquent de différents plugins pour vérifier qu’on bousille rien de manière transversale … Mais oui, pas simple à mettre en place … et d’un autre coté, je me demande si c’est vraiment aux contributeurs indépendants de faire ça … je verrais bien une centralisation du code sur un github jeedom contrib avec des pipelines qui executent des tests de non régression sur des environements controlés par Jeedom eux mêmes … après, je sais, j’en demande énormément :slight_smile: laissez moi rever :stuck_out_tongue:

1 « J'aime »

Bonsoir,

Comme je viens de le faire dans un message du côté du plugin Nut_free, si cela peut faire avancer le sujet, voici les modifs que j’ai faites dans le plugin Monitoring pour retrouver un jeedom fonctionnel (et en passant des plugins fonctionnels également :slight_smile: )

J’ai modifié le fichier « plugins/Monitoring/core/class/Monitoring.class.php » (au début du fichier) :

/* * ***************************Includes********************************* */
/* set_include_path(get_include_path() . PATH_SEPARATOR . '/usr/share/php/phpseclib'); */
include_once('phpseclib/Net/SSH2.php');
include_once('phpseclib/Crypt/RSA.php');
include_once('phpseclib/autoload.php');

use phpseclib\Net\SSH2;

require_once dirname(__FILE__) . '/../../../../core/php/core.inc.php';

PS : j’ai volontairement laissé des lignes avant et après auxquelles je n’ai pas touché pour montrer le bloc de code où cela se trouve.

En faisant la même modif dans tous les plugins qui utilisent cette librairie phpseclib, cela devrait permettre à tout ce beau monde de cohabiter.

Et comme je l’ai dit sur l’autre sujet, je ne met cela ici que pour aider, et je ne dis pas que c’est la bonne solution, ni la seule :wink:

Bonne soirée,
TiTidom.

3 « J'aime »

Mais sinon ? Après 6 jours y a pas de correctif réel ?
Ne faut-il pas urgemment retirer cette mise à jour et dire à tous de ne pas la faire pour ne pas créer de gros désastres comme pour certains ou peur ceux qui sont juniors ?
Juste comme ça…

Bonjour, alors oui je n’ai pas tout suivi mais malgré les maj j’ai moi aussi l’erreur
Erreur sur Monitoring::pull() : Class ‹ phpseclib\Net\SSH2 › not found.
je vois qu’il y a une nouvelle maj mais j’hésite à la faire si le résulat est pire
pour le moment le désactive ce plugin (j 'étais en version stable 2023-10-17)

Je suis d’accord et cest pr cela que je testz sur une vm avec une restaure de prod.

Apres on ne peut pas demander a touq les beta testeurs dacheter tous les plugins.

Enfin pour qui a un pc ou un mac, creer un vm, installer debian, jeedom restaurer un backup et participer a cette communauté est tellement facile que je ne comprends pas plus de monde ne s’investit pas, ca leur ferait en plus une pre prod.

Si Jeedom SAS veux des bêtas testeurs ils pourraient acheter les plugins à ceux-ci pour que les bêtas testeurs puissent avoir un gros panel de plugins :innocent:

4 « J'aime »

Moi je comprends bien pourquoi y a pas beaucoup de gens qui s’investissent … surtout quand je regarde rien que le parcours du combattant que je dois faire ici pour avoir au salon beta testeurs … 2 mois et toujours pas en ordre … pffff … t’installes ta beta, tu vois des trucs qui doivent être fixés, mais t’as pas le droit de poster pour dire qu’il y a un soucis … malgré que t’as le profil commu « Beta Testeur » … oké quoi … logique que le feedback vient pas :smiley:

Après, des fois aussi, je vois que des gens rapportent sur la communauté des observations de choses qu’ils pensent etre des bugs ou des défauts, et ils se font houspiller comme des malpropres par des mecs qui pensent être issus de la cuisse de Jupiter … faut le reconnaitre, ça met pas spécialement l’ambiance …

Après moi je dis ça …

2 « J'aime »