summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2017-03-07 18:01:20 +0100
committerYorick Peterse <yorickpeterse@gmail.com>2017-03-07 20:21:26 +0100
commit520de378f466c899ae273db4559ee9af35b4a062 (patch)
tree5caf18dc3be25987a4527b56e9a51b14c988ded0
parent57e709757f601878d2a688d092de1b1c97bdff7a (diff)
downloadgitlab-ce-clear-connections-before-starting-sidekiq.tar.gz
Clear AR connections before starting Sidekiqclear-connections-before-starting-sidekiq
This should ensure that connections obtained before starting Sidekiq are not leaked, leading to connection timeouts. Fixes gitlab-com/infrastructure#1139
-rw-r--r--changelogs/unreleased/clear-connections-before-starting-sidekiq.yml4
-rw-r--r--config/initializers/sidekiq.rb6
2 files changed, 10 insertions, 0 deletions
diff --git a/changelogs/unreleased/clear-connections-before-starting-sidekiq.yml b/changelogs/unreleased/clear-connections-before-starting-sidekiq.yml
new file mode 100644
index 00000000000..8778fac6e9d
--- /dev/null
+++ b/changelogs/unreleased/clear-connections-before-starting-sidekiq.yml
@@ -0,0 +1,4 @@
+---
+title: Clear ActiveRecord connections before starting Sidekiq
+merge_request:
+author:
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 0c4516b70f0..2b018c68703 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -19,6 +19,12 @@ Sidekiq.configure_server do |config|
chain.add Gitlab::SidekiqStatus::ClientMiddleware
end
+ config.on :startup do
+ # Clear any connections that might have been obtained before starting
+ # Sidekiq (e.g. in an initializer).
+ ActiveRecord::Base.clear_all_connections!
+ end
+
# Sidekiq-cron: load recurring jobs from gitlab.yml
# UGLY Hack to get nested hash from settingslogic
cron_jobs = JSON.parse(Gitlab.config.cron_jobs.to_json)