Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2019-02-05 20:22:25 +0300
committerBob Van Landuyt <bob@vanlanduyt.co>2019-02-06 17:24:46 +0300
commitc982edfa1969770696c2e85a8e32160eb0304cbc (patch)
treede446e480e2a89271b7871550d9904935c00e9ae /lib
parent02cc32c65579573e340603d09280e5b9e88f7a01 (diff)
Avoid race conditions when creating GpgSignature
This avoids race conditions when creating GpgSignature.
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/gpg/commit.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/gitlab/gpg/commit.rb b/lib/gitlab/gpg/commit.rb
index 4fbb87385c3..5ff415b6126 100644
--- a/lib/gitlab/gpg/commit.rb
+++ b/lib/gitlab/gpg/commit.rb
@@ -88,9 +88,10 @@ module Gitlab
def create_cached_signature!
using_keychain do |gpg_key|
- signature = GpgSignature.new(attributes(gpg_key))
- signature.save! unless Gitlab::Database.read_only?
- signature
+ attributes = attributes(gpg_key)
+ break GpgSignature.new(attributes) if Gitlab::Database.read_only?
+
+ GpgSignature.safe_create!(attributes)
end
end