Commit 3d1690c7 authored by Nick Thomas's avatar Nick Thomas

Fix a race condition intermittently breaking GitLab startup

parent 132e6c9f
...@@ -9,13 +9,12 @@ class Shard < ActiveRecord::Base ...@@ -9,13 +9,12 @@ class Shard < ActiveRecord::Base
# The GitLab config does not change for the lifecycle of the process # The GitLab config does not change for the lifecycle of the process
in_config = Gitlab.config.repositories.storages.keys.map(&:to_s) in_config = Gitlab.config.repositories.storages.keys.map(&:to_s)
in_db = all.pluck(:name)
transaction do # This may race with other processes creating shards at the same time, but
in_db = all.pluck(:name) # `by_name` will handle that correctly
missing = in_config - in_db missing = in_config - in_db
missing.map { |name| by_name(name) }
missing.map { |name| by_name(name) }
end
end end
def self.by_name(name) def self.by_name(name)
......
---
title: Fix a race condition intermittently breaking GitLab startup
merge_request: 23028
author:
type: fixed
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment