From 705dda8d687b9686183629c27ba0c4e5c45176c3 Mon Sep 17 00:00:00 2001 From: Tulir Asokan <tulir@maunium.net> Date: Mon, 7 Sep 2020 20:46:42 +0300 Subject: [PATCH] Only wait 3 seconds for disconnect when refreshing --- mautrix_facebook/user.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mautrix_facebook/user.py b/mautrix_facebook/user.py index 6441250..e2870b5 100644 --- a/mautrix_facebook/user.py +++ b/mautrix_facebook/user.py @@ -257,18 +257,25 @@ class User(BaseUser): event_id = None self._is_refreshing = True if self.listener: + self.log.debug("Disconnecting MQTT connection for session refresh...") if self.temp_disconnect_notices or force_notice: event_id = await self.send_bridge_notice("Disconnecting Messenger MQTT connection " "for session refresh...") self.listener.disconnect() if self.listen_task: - await self.listen_task + try: + await asyncio.wait_for(self.listen_task, timeout=3) + except asyncio.TimeoutError: + self.log.debug("Waiting for MQTT connection timed out") + else: + self.log.debug("MQTT connection disconnected") self.listener = None if self.client: self.client.sequence_id_callback = None if self.temp_disconnect_notices or force_notice: event_id = await self.send_bridge_notice("Refreshing session...", edit=event_id) try: + self.log.debug("Re-loading session for refresh") ok = await self.load_session(_override=True, _raise_errors=True) except fbchat.FacebookError as e: await self.send_bridge_notice("Failed to refresh Messenger session: " -- GitLab