Mise à jour Core bloquées (bug?)

Bonjour,

Depuis quelques temps sur ma version de Jeedom 4.18, il m’était impossible de la mettre à jour.

Dans l’écran des mises à jour, le numéro de dernière version était systématiquement « null ». Donc j’étais bloqué en 4.1.18 alors que nous sommes en 4.1.24. J’ai fais une installe fraiche en 4.1.24 pour tester et il se trouve que pour la « Dernière version », il y a toujours marqué ‹ null ›, même en ayant la dernière.
Ne devais-je pas avoir 4.1.24 en « Dernière Version » ?

Je ne sais pas comment mettre à jour ma version 4.1.18 car elle ne trouve pas les mises à jour.
A savoir, les mise à jour de plug-in se passent très bien.
Je ne trouve pas les log de mise à jour du core Jeedom, ou du moins des appels pour vérifier la version sur votre serveur.

Merci

Lo,

Quelle est l’adresse renseignée dans Mises à jour/Market depuis la configuration de ton jeedom?
A titre perso, je ne reproduis pas ton problème,

Au plaisir, bonne journée,

Hello
Tentes de faire une mise à jour forcée

Bonsoir

On peut avoir une copie de la page santé ?

bonne soirée

1 « J'aime »

Hello, alors voici ce que j’ai dans la config sachant que les credentials sont OK.


Merci et bonne journée !

Hello,
Voici le statut des mises à jour sur la dernière version.

Et la page santé:

Il y a un truc étrange sur ta page santé les charges sont a 0 …
Tu viens juste de démarrer ?

Oui, j’ai décidé de recommencer une fresh install avec cette version. Je profite de mon déménagement récent. J’ai tout à refaire, mais au moins, ce sera plus propre.
Après, c’est aussi sur un serveur costaud… donc ça sera jamais bien haut :grin:

Ma config:
Debian (buster) > VM Debian (buster) > Jeedom
Tout le réseau est bien configuré, tout passe sans problème comme les mises à jour de plug ins qui sont bien remontées et qui s’effectuent sans problème.
Il n’y a que le CORE qui ne veut pas me donner la version du serveur Jeedom.
Alors, si ça continue, je vais devoir sortir wireshark et écouter ce qu’il se passe. D’ailleurs, je dois chercher quoi exactement comme appel ?
Merci !

Bonjour @jfavier

La dernière version est le résultat de :

https://raw.githubusercontent.com/jeedom/core/V4-stable/core/config/version

V4-stable est la valeur par défaut de config::byKey('core::branch', 'core', 'V4-stable')

Avez-vous une valeur définie pour la clé core::branch dans la table config?
image

Pas de clé core:branch définie chez moi. Le résultat est donc 4.1.24

J’ajoute juste ça :
image
C’est la query du navigateur au server jeedom local

Bonjour,

Si le problème survient sur un jeedom neuf sur lequel vous n’avez pas encore restauré votre sauvegarde je dirais que c’est que soit la requête entre jeedom et le market est bloquée par qlqch sur votre réseau (peu probable) soit qu’il y a un problème avec votre compte marlet.

Est-ce que dans votre profil market, onglet « mes boxs » vous voyez votre box avec une date de mise à jour récente, genre max 24h?

Hello !
Merci pour la réponse.

Alors, je ne pense pas que ce soit bloqué, j’ai fait tomber les firewalls et je l’ai balancé en DMZ (oui, pas bien… mais temporaire) et ça ne me renvoie pas le numéro de version de la dernière version.
Ce Jeedom est neuf oui, mais bien enregistré sur le MArket:

Le 1 c’est l’ancien qui ne voulait pas se mettre à jour. On voit bien qu’il a bloqué en 4.1.18…
Le 2 c’est le nouveau sur lequel je ne restaurerai pas de backup. Je repars de 0. Il indique bien la bonne version, donc mon jeedom communique bien avec le MArket.
Je précise que les IP flouttées sont bien les mêmes et correspondent bien à ma box :wink:

Hello et merci !
Je n’ai pas de quoi consulter la DB à portée là.
Je peux vérifier directement dans Jeedom ?
Je n’arrive pas à faire passer la requête:

SELECT * FROM 'config' WHERE 'key' LIKE '%core::%';

Bon, j’ai trouvé comment ça marchait dans la syntax de Jeedom:


Et moi aussi la valeur Branch est vide

Ce n’est pas la clé github::core::branch qu’il faut chercher mais core::branch
Si elle existe, il ne faut pas qu’elle soit vide.

https://raw.githubusercontent.com/jeedom/core/V4-stable/core/config/version renvoie la bonne version chez vous?

NB: En relisant le code php, je ne vois pas le lien avec le market. C’est la bdd et github qui sont interrogés.

Je n’ai pas non plus de clé core::branch.
Oui github renvoie la bonne version, c’est fou… Je vais continuer à chercher !
Je précise avant qu’on me le demande, ma commande sur la machine jeedom est :

wget https://raw.githubusercontent.com/jeedom/core/V4-stable/core/config/version

Et elle me donne bien un fichier ‹ version › avec la dernière version à l’intérieur.

Donc, on est sur que ma machine Jeedom a bien accès à GitHub pour relever le numéro de version.
Maintenant, pourquoi Jeedom n’arrive pas à la lire et me l’afficher… c’est une autre histoire…

Tout est dans le fichier core/class/update.php avec la fonction getLastAvailableVersion qui peut retourner null si erreur http

	public static function getLastAvailableVersion() {
		try {
			$url = 'https://raw.githubusercontent.com/jeedom/core/' . config::byKey('core::branch', 'core', 'V4-stable') . '/core/config/version';
			$request_http = new com_http($url);
			return trim($request_http->exec());
		} catch (Exception $e) {
			
		} catch (Error $e) {
			
		}
		return null;
	}

Il faudrait peut-être la modifier pour y ajouter un log dans les catchs et avoir un diagnostic.
Ajoutez dans les 2 catchs :

	log::add(__CLASS__, __FUNCTION__, $e->getMessage());

Je ne suis pas dev PHP du coup… question bête:
Je peux ajouter la ligne directement dans le fichier : OK.
Je dois faire autre chose après pour qu’elle soit prise en compte ?

PS: je verrai ce log ou ?

Juste aller dans le « Centre de mise à jour ».

Pour être sûr que cette fonction est appelée, j’ai ajouté:

 message::add(__FUNCTION__, "Début recup version remote");

au début de la fonction. J’ai un message dès que je vais dans le « Centre de mise à jour »
S’il n’y a pas de message, il faut cliquer sur le bouton bleu Vérifier de la ligne core jeedom
J’ai également ajouté l’affichage de la variable $url dans un message.

Dans le log update. en allant dans Analyse / Logs

La fonction complète modifiée:

	public static function getLastAvailableVersion() {
message::add(__FUNCTION__, "Début recup version remote");
		try {
			$url = 'https://raw.githubusercontent.com/jeedom/core/' . config::byKey('core::branch', 'core', 'V4-stable') . '/core/config/version';
message::add(__FUNCTION__, "URL: $url");
			$request_http = new com_http($url);
			return trim($request_http->exec());
		} catch (Exception $e) {
log::add(__CLASS__, __FUNCTION__, $e->getMessage());
		} catch (Error $e) {
log::add(__CLASS__, __FUNCTION__, $e->getMessage());
		}
		return null;
	}
2 « J'aime »