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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-05-20 17:34:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-05-20 17:34:42 +0300
commit9f46488805e86b1bc341ea1620b866016c2ce5ed (patch)
treef9748c7e287041e37d6da49e0a29c9511dc34768 /lib/gitlab/sidekiq_middleware
parentdfc92d081ea0332d69c8aca2f0e745cb48ae5e6d (diff)
Add latest changes from gitlab-org/gitlab@13-0-stable-ee
Diffstat (limited to 'lib/gitlab/sidekiq_middleware')
-rw-r--r--lib/gitlab/sidekiq_middleware/admin_mode/client.rb8
-rw-r--r--lib/gitlab/sidekiq_middleware/arguments_logger.rb2
-rw-r--r--lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb2
-rw-r--r--lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb25
4 files changed, 31 insertions, 6 deletions
diff --git a/lib/gitlab/sidekiq_middleware/admin_mode/client.rb b/lib/gitlab/sidekiq_middleware/admin_mode/client.rb
index e227ee654ee..36204e1bee0 100644
--- a/lib/gitlab/sidekiq_middleware/admin_mode/client.rb
+++ b/lib/gitlab/sidekiq_middleware/admin_mode/client.rb
@@ -8,7 +8,7 @@ module Gitlab
# If enabled then it injects a job field that persists through the job execution
class Client
def call(_worker_class, job, _queue, _redis_pool)
- return yield unless Feature.enabled?(:user_mode_in_session)
+ return yield unless ::Feature.enabled?(:user_mode_in_session)
# Admin mode enabled in the original request or in a nested sidekiq job
admin_mode_user_id = find_admin_user_id
@@ -16,7 +16,7 @@ module Gitlab
if admin_mode_user_id
job['admin_mode_user_id'] ||= admin_mode_user_id
- Gitlab::AppLogger.debug("AdminMode::Client injected admin mode for job: #{job.inspect}")
+ ::Gitlab::AppLogger.debug("AdminMode::Client injected admin mode for job: #{job.inspect}")
end
yield
@@ -25,8 +25,8 @@ module Gitlab
private
def find_admin_user_id
- Gitlab::Auth::CurrentUserMode.current_admin&.id ||
- Gitlab::Auth::CurrentUserMode.bypass_session_admin_id
+ ::Gitlab::Auth::CurrentUserMode.current_admin&.id ||
+ ::Gitlab::Auth::CurrentUserMode.bypass_session_admin_id
end
end
end
diff --git a/lib/gitlab/sidekiq_middleware/arguments_logger.rb b/lib/gitlab/sidekiq_middleware/arguments_logger.rb
index 2859aa5f4a6..fe5213fc5d7 100644
--- a/lib/gitlab/sidekiq_middleware/arguments_logger.rb
+++ b/lib/gitlab/sidekiq_middleware/arguments_logger.rb
@@ -4,7 +4,7 @@ module Gitlab
module SidekiqMiddleware
class ArgumentsLogger
def call(worker, job, queue)
- Sidekiq.logger.info "arguments: #{JSON.dump(job['args'])}"
+ Sidekiq.logger.info "arguments: #{Gitlab::Json.dump(job['args'])}"
yield
end
end
diff --git a/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb b/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
index 79bbb99752e..fa742d07af2 100644
--- a/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
+++ b/lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb
@@ -67,7 +67,7 @@ module Gitlab
end
def droppable?
- idempotent? && duplicate?
+ idempotent? && duplicate? && ::Feature.disabled?("disable_#{queue_name}_deduplication")
end
private
diff --git a/lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb b/lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb
new file mode 100644
index 00000000000..93c3131d50e
--- /dev/null
+++ b/lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module SidekiqMiddleware
+ class ExtraDoneLogMetadata
+ def call(worker, job, queue)
+ yield
+
+ # We needed a way to pass state from a worker in to the
+ # Gitlab::SidekiqLogging::StructuredLogger . Unfortunately the
+ # StructuredLogger itself is not a middleware so cannot access the
+ # worker object. We also tried to use SafeRequestStore but to pass the
+ # data up but that doesn't work either because this is reset in
+ # Gitlab::SidekiqMiddleware::RequestStoreMiddleware inside yield for
+ # the StructuredLogger so it's cleared before we get to logging the
+ # done statement. As such the only way to do this is to pass the data
+ # up in the `job` object. Since `job` is just a Hash we can add this
+ # extra metadata there.
+ if worker.respond_to?(:logging_extras)
+ job.merge!(worker.logging_extras)
+ end
+ end
+ end
+ end
+end