From 949e7efab1cbf964bd88b779358e49b039f19090 Mon Sep 17 00:00:00 2001 From: Hao Liu <44379968+TheRealHaoLiu@users.noreply.github.com> Date: Thu, 14 Mar 2024 15:09:12 -0400 Subject: [PATCH] Fix wsrelay hanging after db outage TCP keepalive settings was moved out from settings.DATABASE to settings.LISTENER_DATABASES and it's not longer being respected by wsrelay --- awx/main/wsrelay.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/awx/main/wsrelay.py b/awx/main/wsrelay.py index 833cdcc7b8..651b01ae7e 100644 --- a/awx/main/wsrelay.py +++ b/awx/main/wsrelay.py @@ -302,7 +302,14 @@ class WebSocketRelayManager(object): self.stats_mgr.start() # Set up a pg_notify consumer for allowing web nodes to "provision" and "deprovision" themselves gracefully. - database_conf = settings.DATABASES['default'] + database_conf = settings.DATABASES['default'].copy() + database_conf['OPTIONS'] = database_conf.get('OPTIONS', {}).copy() + + for k, v in settings.LISTENER_DATABASES.get('default', {}).items(): + database_conf[k] = v + for k, v in settings.LISTENER_DATABASES.get('default', {}).get('OPTIONS', {}).items(): + database_conf['OPTIONS'][k] = v + async_conn = await psycopg.AsyncConnection.connect( dbname=database_conf['NAME'], host=database_conf['HOST'],