diff options
author | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-02-05 18:22:25 +0100 |
---|---|---|
committer | Bob Van Landuyt <bob@vanlanduyt.co> | 2019-02-06 15:24:46 +0100 |
commit | c982edfa1969770696c2e85a8e32160eb0304cbc (patch) | |
tree | de446e480e2a89271b7871550d9904935c00e9ae /lib/gitlab | |
parent | 02cc32c65579573e340603d09280e5b9e88f7a01 (diff) | |
download | gitlab-ce-c982edfa1969770696c2e85a8e32160eb0304cbc.tar.gz |
Avoid race conditions when creating GpgSignature
This avoids race conditions when creating GpgSignature.
Diffstat (limited to 'lib/gitlab')
-rw-r--r-- | lib/gitlab/gpg/commit.rb | 7 |
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 |