From e73dd869141894e0bb09e6f11cf2c507193e1845 Mon Sep 17 00:00:00 2001
From: Thong Kuah <tkuah@gitlab.com>
Date: Tue, 8 Jun 2021 16:18:48 +1200
Subject: [PATCH] Create new set of LB hosts on worker boot

As Rails 6.1 has automatic discard for all AR connection pools, we
need to create new connection pools.

https://gitlab.com/gitlab-org/gitlab/-/issues/332913
---
 config/initializers/load_balancing.rb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/config/initializers/load_balancing.rb b/config/initializers/load_balancing.rb
index a8a6e87179ae..f3c977893baa 100644
--- a/config/initializers/load_balancing.rb
+++ b/config/initializers/load_balancing.rb
@@ -11,6 +11,9 @@
 
   # This needs to be executed after fork of clustered processes
   Gitlab::Cluster::LifecycleEvents.on_worker_start do
+    # For Host-based LB, we need to re-connect as Rails discards connections on fork
+    Gitlab::Database::LoadBalancing.configure_proxy
+
     # Service discovery must be started after configuring the proxy, as service
     # discovery depends on this.
     Gitlab::Database::LoadBalancing.start_service_discovery
-- 
GitLab