Trop de session actives tous les 3J malgré le nettoyage des sessions

J’utilise Slack, j’ai fait un espace pour mon jeedom et pleins de channel pour repartir les notifications. Hyper sympa :blush:. J’ai aussi telegram qui m’envoie les images de la caméra pour l’alarme

1 « J'aime »

J’ai réactivé le plugin mais pas réutilisé l’application mobile, pour l’instant pas de spam de session.
Je réactive l’application, et je vais essayer d’utiliser l’appli plusieurs fois par jours.
Edit : dès l’utilisation de l’appli je vois 2 nouvelles sessions, donc à voir mais ca sent bien être le souci.

Salut,
Je confirme que moi aussi l’application me créé des sessions que je dois régulièrement supprimer.

1 « J'aime »

Bon, pour mon expérience j’ai désactivé puis réactivé le plug-in, puis reset l’application mobile, ensuite j’ai reconnecté mon téléphone et depuis je n’ai plus de spam de session…
Peut être l’ancienne version de l’application ou du plugin mobile, mais après ce cleanup ca va mieux pour moi :slight_smile:

Je garde en visu le topic mais à priori résolu pour moi :slight_smile:

Désactivé comment ? Tu t’es déconnecté sur le tel et relis une sauvegarde après ?

J’ai édité, je voulais dire désactivé le plug-in mobile et reset l’application du téléphone. Comme si c’était la première fois que je voulais installer les 2

2 « J'aime »

Rien avoir, mais j’ai également changé dans les 6 derniers mois je suis passé de lighttpd vers apache, peut être que apache gère mieux le mode de fonctionnement :blush:

Pour contrer le nombre de sessions trop important qui empêche l’accès à Réglages / Préférences, j’ai modifié la fonction listSession dans le fichier core/php/utils.inc.php

Suppression des fichiers de sessions qui ont plus de 45 jours.
Suppression des fichiers non décodables ou vides
Suppression des fichiers qui ne contiennent pas de user
Tri des sessions par la date ( plus anciennes en premier )
Limitation du nombre de sessions affichées.

Cela résout mon cas particulier.

1 « J'aime »

Si tu peux nous partager le bout de code ce serait top ! :grin:

C’est du code à durée de vie limitée. Jusqu’à la mise à jour suivante de Jeedom.
Je l’ai fait et je l’utilise en 4.1.15B.

Code de la fonction listSession dans core/php/utils.inc.php
  function listSession() {
    $list = shell_exec(system::getCmdSudo() . ' find /var/lib/php/sessions -mtime +45 -type f -name "sess_*" -delete');
		$return = array();
		$sessions = explode("\n", com_shell::execute(system::getCmdSudo() . ' ls -rt ' . session_save_path()));
    $nbsession = count($sessions);
    $nbMaxSession = 40; // Nombre de sessions max à lister
    if($nbsession >= $nbMaxSession) {
      log::add('sessions', 'error', "Number of sessions listed will be limited to $nbMaxSession/$nbsession");
    }
    $numsession = 0;
		foreach ($sessions as $session) {
      try {
				$data = com_shell::execute(system::getCmdSudo() . ' cat ' . session_save_path() . '/' . $session);
				if ($data == '') {
          log::add('sessions', 'error', "$session no data");
          @unlink(session_save_path().'/'.$session);
					continue;
				}
				try {
					$data_session = decodeSessionData($data);
				} catch (Exception $e) {
          log::add('sessions', 'error', "Unable to decode session data $session");
          @unlink(session_save_path().'/'.$session);
					continue;
				}
				if (!isset($data_session['user']) || !is_object($data_session['user'])) {
          log::add('sessions', 'error', "$session without user data");
          @unlink(session_save_path().'/'.$session);
					continue;
				}
				$session_id = str_replace('sess_', '', $session);
        $numsession++;
        $return[$session_id] = array(
          'datetime' => date('Y-m-d H:i:s', com_shell::execute(system::getCmdSudo() . ' stat -c "%Y" ' . session_save_path() . '/' . $session)),
        );
        $return[$session_id]['login'] = $data_session['user']->getLogin();
				$return[$session_id]['user_id'] = $data_session['user']->getId();
				$return[$session_id]['ip'] = (isset($data_session['ip'])) ? $data_session['ip'] : '';
			} catch (Exception $e) {

			}
      if($numsession >= $nbMaxSession) {
        break;
      }
		}
		return $return;
	}
2 « J'aime »

Merci beaucoup ! Si j’ai de nouveaux soucis j’irais sur cette voie de secours :wink:

Je pense avoir résolu le problème reinstallant jeedom complètement et en remettant une sauvegarde. Depuis les sessions se vident au fur et a mesure…

1 « J'aime »

Bonjour,

Excuse moi de te déranger mais je dois suivre la même procédure ?

J’ai le problème suivant;

Peux tu me dire pourquoi j’ai cette indication, c’est quand je me rends dans préférence.

Merci de ton retour.
Greg

C’est bon j’ai suivi ton conseil. Cela fonctionne à nouveau sur le coup j’ai eu peur j’avais une erreur 401 puis Jeedom s’est coupé et on m’a demandé mes mots de passe et tout fonctionne. Merci pour vos précieux conseils.

Si jamais tu sais la raison pour laquelle j’avais ce problème je suis preneur, merci.

J’avais le problème sur 2 smart, je n’ai jamais résolu le problème sauf en faisant un recovery et relis ma sauvegarde. Depuis plus de problème les sessions se vident automatiquement

Bonjour, j’ai à nouveau le problème sur une smart qui n’a pas reussi à se mettre a lheure apres une coupure de courant et elle etait reglée sur l’année 2025… depuis la sessions utilisateurs ne se vident plus…
Si cette info peut aider à resoudre le problème…

Bonjour,
As-tu vérifié si ta smart est connectée à Internet ?

Oui quand je m’en suis rendu compte je l’ai remise à l’heure. Mais depuis les sessions restent et s’accumulent. C’est peut parce qu’il y a eu des sessions en 2025 qu’il ne ferme plus les sessions de 2021

Je te proposerais bien de vider le cache et rebooter ta box mais tu vas perdre toutes les infos stockées en mémoire.
En plus, je ne suis pas sûr que cela marche.

C’est quoi les infos en mémoire ?
Je l’ai déjà reboote mais pas vidé le cache. On fait comment pour vider ?