Alpha 4.4.10

Bonjour,

Nous avons le plaisir de vous annoncer la sortie de l’alpha 4.4.10, qui inclut deux changements majeurs :

1. Les events

Pour rappel, les events sont les 250 derniers changements enregistrés par Jeedom (messages, mises à jour de commandes, résumés, etc.), permettant aux interfaces web, applications mobiles, et autres de se mettre à jour en conséquence.

Auparavant, les events étaient stockés en cache sous une seule clé, avec un système de mutex basé sur un verrou de fichier pour éviter d’écraser les modifications en cours. Cependant, ce système pouvait parfois ne pas enregistrer certains events.

Désormais, les events sont stockés dans une table en mémoire au sein de la base de données, éliminant ainsi tout risque de perte d’enregistrement. Ce nouveau système est également plus simple à gérer, et devrait rendre Jeedom légèrement plus rapide grâce à la suppression des temps d’attente liés aux mutex. À noter que la taille d’un event ne peut pas dépasser 8191 caractères, ce qui ne devrait pas poser de problème dans la plupart des cas.

2. Le cache

Comme certains d’entre vous le savent, nous utilisions une bibliothèque de cache non maintenue depuis longtemps. Nous avons donc entièrement revu ce système et développé une solution maison, plus simple à utiliser. Il existe maintenant quatre systèmes de cache possibles : l’ancien (toujours stable pour le moment) et trois nouveaux en version bêta. Notez que Redis passe de stable à bêta car il utilise désormais le système maison. Toutes les explications se trouvent dans la documentation et le changelog. N’hésitez pas à tester le nouveau système (le cache fichier est recommandé) et à nous faire part de vos retours.

Pour rappel, vous pouvez consulter le changelog alpha ici : core/docs/fr_FR/changelog.md at alpha · jeedom/core (github.com)

Cordialement,
L’équipe Jeedom

20 « J'aime »

Bonjour,
Pour info une nouvelle version de l’alpha vient d’être mise en ligne elle change la manière de stocker en cache (passage de json a serialize pour supporter les objets). Il est possible que suite a la mise a jour vous ayez des soucis il faut vider le cache :

  • fichier : rm -rf /tmp/jeedom/cache*
  • database : TRUNCATE cache
  • redis : se connecter en cli et faire un flush
1 « J'aime »

Bonjour,

Pour info l’alpha 4.4.10 est passé en beta (avec quelques autres changement je vous laisse lire le changelog).

L’alpha est passé en 4.4.11 avec pour le moment 2 changements (dans le changelog), il est possible qu’avec tous les PR en cours cette alpha soit une 4.5

5 « J'aime »

Hello,

Ne serait il pas bon de mettre le nouveau cache dans la 4.5 alors plutôt que dans une version de correction (voir semver) ?

2 « J'aime »

Là il arrive en bêta le nouveau cache car j’ai besoin que les utilisateurs test et me fasse des retour mais par défaut c’est toujours l’ancien. Le nouveau ne sera forcé que dans la prochaine version (dont on connaît pas encore le numéro)

2 « J'aime »

J’ai installé hier la dernière version du core en bêta 4.4.10.
Pour l’instant je n’ai eu qu’une seul erreur :


0000|[2024-08-02 05:00:05] ERROR  : Erreur sur history::archive() : [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)

Ca c’est bizarre vraiment, c’est une correction en 4.4.10 en plus et normalement pas de soucis sur cette requête (validé par plusieurs utilisateur).

Pourrais tu la lancer dans une console mysql, faut se connecter en ssh puis faire :
sudo su -
mysql
use jeedom;
(SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)

Et me donner le retour.

voici le retour de la commande:

MariaDB [(none)]> SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch;
ERROR 1046 (3D000): No database selected

Tu aurais pas oublié le use jeedom à faire avant la commande ?

MariaDB [(none)]> use jeedom;
No connection. Trying to reconnect...
Connection id:    186241
Current database: *** NONE ***

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [jeedom]> (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)
    -> ;
+--------+
| cmd_id |
+--------+
|     91 |
|     92 |
|     93 |
|     94 |
|     95 |
|     96 |
|     97 |
|     98 |
|     99 |
|    100 |
|    101 |
|    102 |
|    103 |
|    106 |
|    107 |
|    108 |
|    111 |
|    112 |
+--------+
18 rows in set (0,002 sec)

autant pour moi :sweat_smile:

Vraiment bizarre la requête marche et sans aucune erreur. Tu as le message toute les nuits ?

non une fois a 5h00

Et depuis plus du tout ? Faudrait laisser passer un peu de temps et voir si c’est tout le temps a 5h ou si c’est arrivé que une fois.

oui apres plus de message c’était vraiment une seule fois.
ok je vais surveiller je te redis ça demain.

Bonjour,

Pour info, sur un Jeedom de tests en Debian 12 et Jeedom 4.4.11 (dernière alpha) :

0000|[2024-07-28 05:00:01] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )
0001|[2024-07-29 05:00:03] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )
0002|[2024-07-30 05:00:03] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )
0003|[2024-07-31 05:00:02] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )
0004|[2024-08-01 05:00:02] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )
0005|[2024-08-02 05:00:02] ERROR  : Erreur sur history::archive() : Exception Object (     [message:protected] => [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)     [string:Exception:private] =>      [code:protected] => 0     [file:protected] => /var/www/html/core/class/DB.class.php     [line:protected] => 120     [trace:Exception:private] => Array         (             [0] => Array                 (                     [file] => /var/www/html/core/class/history.class.php                     [line] => 256                     [function] => Prepare                     [class] => DB                     [type] => ::                 )              [1] => Array                 (                     [file] => /var/www/html/core/php/jeeCron.php                     [line] => 78                     [function] => archive                     [class] => history                     [type] => ::                 )          )      [previous:Exception:private] =>  )

Sachant que comme c’est une machine de tests, je n’ai que ces commandes en historique sur ce Jeedom :

image

Si besoin de faire des tests ou lancer des commandes sur ce jeedom, je suis à dispo.

EDIT : sur un autre Jeedom de tests, cette fois en Debian 11, je n’ai pas cette erreur tous les matins à 5h, alors qu’il est dans la même version de Jeedom (4.4.11 alpha)

TiTidom.

1 « J'aime »

Ok trouvé c’est corrigé en alpha et beta

3 « J'aime »

Bonjour Loic

Je ne sais pas si ça règle aussi mon problème ta correction?
Mais pour info il m’a fait exactement le même défaut que hier.


0000|[2024-08-02 05:00:05] ERROR  : Erreur sur history::archive() : [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)
0001|[2024-08-03 05:00:05] ERROR  : Erreur sur history::archive() : [MySQL] Error code : HY093 ().   : (SELECT DISTINCT(cmd_id) FROM history) UNION (SELECT DISTINCT(cmd_id) FROM historyArch)

Tu as bien mis à jour le core même si il ne te propose rien ?

Non pas fait je le fait est je vois demain

Ok c’est bon depuis que j’ai refait la mise à jour, plus de message erreur ce matin merci Loic :wink:

1 « J'aime »