summaryrefslogtreecommitdiff
path: root/lib/gitlab/gpg
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2019-02-05 18:22:25 +0100
committerBob Van Landuyt <bob@vanlanduyt.co>2019-02-06 15:24:46 +0100
commitc982edfa1969770696c2e85a8e32160eb0304cbc (patch)
treede446e480e2a89271b7871550d9904935c00e9ae /lib/gitlab/gpg
parent02cc32c65579573e340603d09280e5b9e88f7a01 (diff)
downloadgitlab-ce-c982edfa1969770696c2e85a8e32160eb0304cbc.tar.gz
Avoid race conditions when creating GpgSignature
This avoids race conditions when creating GpgSignature.
Diffstat (limited to 'lib/gitlab/gpg')
-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