Fix a race condition intermittently breaking GitLab startup

This commit is contained in:
Nick Thomas 2018-11-13 20:41:45 +00:00
parent 132e6c9f95
commit 3d1690c776
No known key found for this signature in database
GPG Key ID: 2A313A47AFADACE9
2 changed files with 10 additions and 6 deletions

View File

@ -9,13 +9,12 @@ class Shard < ActiveRecord::Base
# The GitLab config does not change for the lifecycle of the process
in_config = Gitlab.config.repositories.storages.keys.map(&:to_s)
in_db = all.pluck(:name)
transaction do
in_db = all.pluck(:name)
missing = in_config - in_db
missing.map { |name| by_name(name) }
end
# This may race with other processes creating shards at the same time, but
# `by_name` will handle that correctly
missing = in_config - in_db
missing.map { |name| by_name(name) }
end
def self.by_name(name)

View File

@ -0,0 +1,5 @@
---
title: Fix a race condition intermittently breaking GitLab startup
merge_request: 23028
author:
type: fixed