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
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers/forbid_sidekiq_in_transactions.rb')
-rw-r--r--config/initializers/forbid_sidekiq_in_transactions.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/config/initializers/forbid_sidekiq_in_transactions.rb b/config/initializers/forbid_sidekiq_in_transactions.rb
index e5e17672c4e..2ea6c9a7343 100644
--- a/config/initializers/forbid_sidekiq_in_transactions.rb
+++ b/config/initializers/forbid_sidekiq_in_transactions.rb
@@ -20,7 +20,7 @@ module Sidekiq
module NoEnqueueingFromTransactions
%i(perform_async perform_at perform_in).each do |name|
define_method(name) do |*args|
- if !Sidekiq::Worker.skip_transaction_check && ApplicationRecord.inside_transaction?
+ if !Sidekiq::Worker.skip_transaction_check && inside_transaction?
begin
raise Sidekiq::Worker::EnqueueFromTransactionError, <<~MSG
`#{self}.#{name}` cannot be called inside a transaction as this can lead to
@@ -38,6 +38,12 @@ module Sidekiq
super(*args)
end
end
+
+ private
+
+ def inside_transaction?
+ ::ApplicationRecord.inside_transaction? || ::Ci::ApplicationRecord.inside_transaction?
+ end
end
prepend NoEnqueueingFromTransactions