From f1aa82ad3675c1fd8dbdaf5ccb1f939cf678e961 Mon Sep 17 00:00:00 2001 From: Yogesh Mahajan Date: Fri, 24 Mar 2023 14:33:45 +0530 Subject: [PATCH] While restoring the database connections due to lost server connection, ensure that the databases which were previously connected are only reconnected. #5919 --- web/pgadmin/utils/heartbeat.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/web/pgadmin/utils/heartbeat.py b/web/pgadmin/utils/heartbeat.py index 3ec430b83..c8473c4b6 100644 --- a/web/pgadmin/utils/heartbeat.py +++ b/web/pgadmin/utils/heartbeat.py @@ -111,15 +111,16 @@ class ServerHeartbeatTimer(): def _release_connections(server_conn, sess_id, sid): for d in server_conn: try: - # Release the connection - server_conn[d]._release() - # Reconnect on the reload - server_conn[d].wasConnected = True - current_app.logger.debug( - "Heartbeat not received. Released " - "connection for the session " - "id##server id: {0}##{1}".format( - sess_id, sid)) + # Release the connection only if it is connected + if server_conn[d].wasConnected: + server_conn[d]._release() + # Reconnect on the reload + server_conn[d].wasConnected = True + current_app.logger.debug( + "Heartbeat not received. Released " + "connection for the session " + "id##server id: {0}##{1}".format( + sess_id, sid)) except Exception as e: current_app.logger.exception(e)