From 36a59d088eca61b834191dacea009677a96c052f Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 May 2022 07:33:21 +0000 Subject: Add latest changes from gitlab-org/gitlab@15-0-stable-ee --- app/workers/concerns/git_garbage_collect_methods.rb | 20 +++++++++++++++----- app/workers/concerns/reenqueuer.rb | 2 ++ app/workers/concerns/worker_attributes.rb | 4 ++-- 3 files changed, 19 insertions(+), 7 deletions(-) (limited to 'app/workers/concerns') diff --git a/app/workers/concerns/git_garbage_collect_methods.rb b/app/workers/concerns/git_garbage_collect_methods.rb index 308ffacfc6b..5c0493c9be5 100644 --- a/app/workers/concerns/git_garbage_collect_methods.rb +++ b/app/workers/concerns/git_garbage_collect_methods.rb @@ -37,7 +37,7 @@ module GitGarbageCollectMethods # Refresh the branch cache in case garbage collection caused a ref lookup to fail flush_ref_caches(resource) if gc?(task) - update_repository_statistics(resource) if task != :pack_refs + update_repository_statistics(resource, task) # In case pack files are deleted, release libgit2 cache and open file # descriptors ASAP instead of waiting for Ruby garbage collection @@ -83,7 +83,7 @@ module GitGarbageCollectMethods def gitaly_call(task, resource) repository = resource.repository.raw_repository - if Feature.enabled?(:optimized_housekeeping, container(resource), default_enabled: :yaml) + if Feature.enabled?(:optimized_housekeeping, container(resource)) client = repository.gitaly_repository_client if task == :prune @@ -135,15 +135,25 @@ module GitGarbageCollectMethods resource.repository.has_visible_content? end - def update_repository_statistics(resource) + def update_repository_statistics(resource, task) + return if task == :pack_refs + resource.repository.expire_statistics_caches return if Gitlab::Database.read_only? # GitGarbageCollectWorker may be run on a Geo secondary - update_db_repository_statistics(resource) + stats_to_update = stats + + stats_to_update.delete(:repository_size) if task == :incremental_repack + + update_db_repository_statistics(resource, stats_to_update) end - def update_db_repository_statistics(resource) + def update_db_repository_statistics(resource, stats) # no-op end + + def stats + [] + end end diff --git a/app/workers/concerns/reenqueuer.rb b/app/workers/concerns/reenqueuer.rb index 641ca691868..9c0f8f94a24 100644 --- a/app/workers/concerns/reenqueuer.rb +++ b/app/workers/concerns/reenqueuer.rb @@ -41,6 +41,8 @@ module Reenqueuer end def perform(*args) + set_custom_lease_key(*args) if self.respond_to?(:set_custom_lease_key) + try_obtain_lease do reenqueue(*args) do ensure_minimum_duration(minimum_duration) do diff --git a/app/workers/concerns/worker_attributes.rb b/app/workers/concerns/worker_attributes.rb index 8f7a3da5429..5d7251e9a98 100644 --- a/app/workers/concerns/worker_attributes.rb +++ b/app/workers/concerns/worker_attributes.rb @@ -104,7 +104,7 @@ module WorkerAttributes def get_data_consistency_feature_flag_enabled? return true unless class_attributes[:data_consistency_feature_flag] - Feature.enabled?(class_attributes[:data_consistency_feature_flag], default_enabled: :yaml) + Feature.enabled?(class_attributes[:data_consistency_feature_flag]) end # Set this attribute on a job when it will call to services outside of the @@ -175,7 +175,7 @@ module WorkerAttributes def deduplication_enabled? return true unless get_deduplication_options[:feature_flag] - Feature.enabled?(get_deduplication_options[:feature_flag], default_enabled: :yaml) + Feature.enabled?(get_deduplication_options[:feature_flag]) end def big_payload! -- cgit v1.2.1