From b291ff49dbc3fff5373d26dff04de1c4a77d0b78 Mon Sep 17 00:00:00 2001 From: Andrew Mirsky Date: Sat, 26 Jul 2025 18:19:43 -0400 Subject: [PATCH] trying to reproduce failure --- amqtt/broker.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/amqtt/broker.py b/amqtt/broker.py index 1e6c6a3..db24b52 100644 --- a/amqtt/broker.py +++ b/amqtt/broker.py @@ -307,6 +307,7 @@ class Broker: while True: session_count_before = len(self._sessions) + self.logger.warning("evaluating session expiration") # clean or anonymous sessions don't retain messages (or subscriptions); the session can be filtered out sessions_to_remove = [ client_id for client_id, (session, _) in self._sessions.items() @@ -314,13 +315,16 @@ class Broker: # if session expiration is enabled, check to see if any of the sessions are disconnected and past expiration if self.config.session_expiry_interval is not None: + self.logger.warning(f"sessions expiring due to time. before: {session_count_before}") retain_after = floor(time.time() - self.config.session_expiry_interval) sessions_to_remove += [ client_id for client_id, (session, _) in self._sessions.items() if session.transitions.state == "disconnected" and session.last_disconnect_time and session.last_disconnect_time < retain_after ] + self.logger.warning(f"need to remove these sessions: {sessions_to_remove}") for client_id in sessions_to_remove: + self.logger.warning(f"removing session: {client_id}") await self._cleanup_session(client_id) if session_count_before > (session_count_after := len(self._sessions)):