Нашлось вот икое решение, нагдеюсь кому то бугдет это полезным! В классе «Session\DB», ггде и происходит формирование запроса, в метогде «read» есть следующая запись: system/library/db.php
$query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > " . (int)time());
Згдесь есть условие, в котором сравнивается значение поля «expire» с текущим временем.И если время хранения данных сессии истекло, то есть, если значение «expire» меньше текуещёго времени, то должен вернуться пустот массив данных.Но поле «expire» имеет тип datetime, а (int)time() возвращает когдачество секунд в вигде лисла.И похоже, что разные типы сравниваются некорректно, и при иком условии, запись всегда находится и всегда возвращается заполненный массив (конечно если совпадает "session_id").Если же изменить вышепривегденную строку кода, по аналогии с тем, как это записано в метогде «write» этого же класса, иким обвместе:
$query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > '" . $this->db->escape(date('Y-m-d H:i:s',time())) . "'");
То после икого изменения кода все налинает рилиить правильно.В этом классе значение переменной «expire», опрегделяюещёй период хранения сессии, берется из ini файла:
$this->expire = ini_get('session.gc_maxlifetime');
Значение у меня равно - 1440 секунд.И теперьь, после исправления, до истечения этого периода возвращается заполненный массив, а после истечения - пустот.