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>2023-01-18 22:00:14 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-18 22:00:14 +0300
commit05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch)
tree11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /app/workers
parentec73467c23693d0db63a797d10194da9e72a74af (diff)
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/all_queues.yml66
-rw-r--r--app/workers/chat_notification_worker.rb2
-rw-r--r--app/workers/ci/build_finished_worker.rb1
-rw-r--r--app/workers/ci/initial_pipeline_process_worker.rb12
-rw-r--r--app/workers/cluster_provision_worker.rb16
-rw-r--r--app/workers/concerns/application_worker.rb1
-rw-r--r--app/workers/concerns/git_garbage_collect_methods.rb42
-rw-r--r--app/workers/concerns/update_repository_storage_worker.rb1
-rw-r--r--app/workers/concerns/worker_attributes.rb7
-rw-r--r--app/workers/counters/cleanup_refresh_worker.rb31
-rw-r--r--app/workers/create_note_diff_file_worker.rb2
-rw-r--r--app/workers/database/batched_background_migration/single_database_worker.rb1
-rw-r--r--app/workers/delete_diff_files_worker.rb2
-rw-r--r--app/workers/gitlab/github_gists_import/finish_import_worker.rb14
-rw-r--r--app/workers/gitlab/github_gists_import/import_gist_worker.rb24
-rw-r--r--app/workers/issues/rebalancing_worker.rb2
-rw-r--r--app/workers/merge_request_cleanup_refs_worker.rb2
-rw-r--r--app/workers/merge_request_mergeability_check_worker.rb2
-rw-r--r--app/workers/merge_requests/close_issue_worker.rb2
-rw-r--r--app/workers/merge_requests/create_approval_event_worker.rb2
-rw-r--r--app/workers/merge_requests/create_approval_note_worker.rb2
-rw-r--r--app/workers/merge_requests/create_pipeline_worker.rb8
-rw-r--r--app/workers/merge_requests/execute_approval_hooks_worker.rb2
-rw-r--r--app/workers/merge_requests/handle_assignees_change_worker.rb2
-rw-r--r--app/workers/merge_requests/resolve_todos_after_approval_worker.rb2
-rw-r--r--app/workers/merge_requests/resolve_todos_worker.rb2
-rw-r--r--app/workers/merge_requests/update_head_pipeline_worker.rb2
-rw-r--r--app/workers/migrate_external_diffs_worker.rb2
-rw-r--r--app/workers/new_merge_request_worker.rb2
-rw-r--r--app/workers/pages/invalidate_domain_cache_worker.rb12
-rw-r--r--app/workers/personal_access_tokens/expired_notification_worker.rb18
-rw-r--r--app/workers/pipeline_schedule_worker.rb43
-rw-r--r--app/workers/projects/delete_branch_worker.rb6
-rw-r--r--app/workers/projects/finalize_project_statistics_refresh_worker.rb33
-rw-r--r--app/workers/projects/git_garbage_collect_worker.rb6
-rw-r--r--app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb12
-rw-r--r--app/workers/remove_unreferenced_lfs_objects_worker.rb2
-rw-r--r--app/workers/repository_import_worker.rb7
-rw-r--r--app/workers/run_pipeline_schedule_worker.rb14
-rw-r--r--app/workers/schedule_merge_request_cleanup_refs_worker.rb2
-rw-r--r--app/workers/schedule_migrate_external_diffs_worker.rb2
-rw-r--r--app/workers/stuck_merge_jobs_worker.rb2
-rw-r--r--app/workers/update_merge_requests_worker.rb2
-rw-r--r--app/workers/wait_for_cluster_creation_worker.rb16
-rw-r--r--app/workers/wikis/git_garbage_collect_worker.rb6
45 files changed, 288 insertions, 151 deletions
diff --git a/app/workers/all_queues.yml b/app/workers/all_queues.yml
index 652a0021b0f..693afdea43a 100644
--- a/app/workers/all_queues.yml
+++ b/app/workers/all_queues.yml
@@ -698,7 +698,7 @@
:tags: []
- :name: cronjob:remove_unreferenced_lfs_objects
:worker_name: RemoveUnreferencedLfsObjectsWorker
- :feature_category: :git_lfs
+ :feature_category: :source_code_management
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -725,7 +725,7 @@
:tags: []
- :name: cronjob:schedule_merge_request_cleanup_refs
:worker_name: ScheduleMergeRequestCleanupRefsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -734,7 +734,7 @@
:tags: []
- :name: cronjob:schedule_migrate_external_diffs
:worker_name: ScheduleMigrateExternalDiffsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -779,7 +779,7 @@
:tags: []
- :name: cronjob:stuck_merge_jobs
:worker_name: StuckMergeJobsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -951,11 +951,11 @@
- :name: gcp_cluster:cluster_provision
:worker_name: ClusterProvisionWorker
:feature_category: :kubernetes_management
- :has_external_dependencies: true
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent: false
+ :idempotent: true
:tags: []
- :name: gcp_cluster:cluster_update_app
:worker_name: ClusterUpdateAppWorker
@@ -1059,11 +1059,11 @@
- :name: gcp_cluster:wait_for_cluster_creation
:worker_name: WaitForClusterCreationWorker
:feature_category: :kubernetes_management
- :has_external_dependencies: true
+ :has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
:weight: 1
- :idempotent: false
+ :idempotent: true
:tags: []
- :name: github_gists_importer:github_gists_import_finish_import
:worker_name: Gitlab::GithubGistsImport::FinishImportWorker
@@ -2282,7 +2282,7 @@
:tags: []
- :name: chat_notification
:worker_name: ChatNotificationWorker
- :feature_category: :chatops
+ :feature_category: :integrations
:has_external_dependencies: true
:urgency: :low
:resource_boundary: :unknown
@@ -2334,6 +2334,15 @@
:weight: 1
:idempotent: true
:tags: []
+- :name: counters_cleanup_refresh
+ :worker_name: Counters::CleanupRefreshWorker
+ :feature_category: :not_owned
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: create_commit_signature
:worker_name: CreateCommitSignatureWorker
:feature_category: :source_code_management
@@ -2345,7 +2354,7 @@
:tags: []
- :name: create_note_diff_file
:worker_name: CreateNoteDiffFileWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2363,7 +2372,7 @@
:tags: []
- :name: delete_diff_files
:worker_name: DeleteDiffFilesWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2750,7 +2759,7 @@
:tags: []
- :name: merge_request_cleanup_refs
:worker_name: MergeRequestCleanupRefsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2759,7 +2768,7 @@
:tags: []
- :name: merge_request_mergeability_check
:worker_name: MergeRequestMergeabilityCheckWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2768,7 +2777,7 @@
:tags: []
- :name: merge_requests_close_issue
:worker_name: MergeRequests::CloseIssueWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: true
:urgency: :low
:resource_boundary: :unknown
@@ -2777,7 +2786,7 @@
:tags: []
- :name: merge_requests_create_approval_event
:worker_name: MergeRequests::CreateApprovalEventWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2786,7 +2795,7 @@
:tags: []
- :name: merge_requests_create_approval_note
:worker_name: MergeRequests::CreateApprovalNoteWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2804,7 +2813,7 @@
:tags: []
- :name: merge_requests_execute_approval_hooks
:worker_name: MergeRequests::ExecuteApprovalHooksWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: true
:urgency: :low
:resource_boundary: :unknown
@@ -2813,7 +2822,7 @@
:tags: []
- :name: merge_requests_handle_assignees_change
:worker_name: MergeRequests::HandleAssigneesChangeWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
@@ -2822,7 +2831,7 @@
:tags: []
- :name: merge_requests_resolve_todos
:worker_name: MergeRequests::ResolveTodosWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :high
:resource_boundary: :unknown
@@ -2831,7 +2840,7 @@
:tags: []
- :name: merge_requests_resolve_todos_after_approval
:worker_name: MergeRequests::ResolveTodosAfterApprovalWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2840,7 +2849,7 @@
:tags: []
- :name: merge_requests_update_head_pipeline
:worker_name: MergeRequests::UpdateHeadPipelineWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
@@ -2867,7 +2876,7 @@
:tags: []
- :name: migrate_external_diffs
:worker_name: MigrateExternalDiffsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :unknown
@@ -2903,7 +2912,7 @@
:tags: []
- :name: new_merge_request
:worker_name: NewMergeRequestWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
@@ -3072,6 +3081,15 @@
:weight: 1
:idempotent: true
:tags: []
+- :name: projects_finalize_project_statistics_refresh
+ :worker_name: Projects::FinalizeProjectStatisticsRefreshWorker
+ :feature_category: :not_owned
+ :has_external_dependencies: false
+ :urgency: :low
+ :resource_boundary: :unknown
+ :weight: 1
+ :idempotent: true
+ :tags: []
- :name: projects_git_garbage_collect
:worker_name: Projects::GitGarbageCollectWorker
:feature_category: :gitaly
@@ -3362,7 +3380,7 @@
:tags: []
- :name: update_merge_requests
:worker_name: UpdateMergeRequestsWorker
- :feature_category: :code_review
+ :feature_category: :code_review_workflow
:has_external_dependencies: false
:urgency: :high
:resource_boundary: :cpu
diff --git a/app/workers/chat_notification_worker.rb b/app/workers/chat_notification_worker.rb
index 23d8a1ec29d..4ee32a43808 100644
--- a/app/workers/chat_notification_worker.rb
+++ b/app/workers/chat_notification_worker.rb
@@ -8,7 +8,7 @@ class ChatNotificationWorker # rubocop:disable Scalability/IdempotentWorker
TimeoutExceeded = Class.new(StandardError)
sidekiq_options retry: false
- feature_category :chatops
+ feature_category :integrations
urgency :low # Can't be high as it has external dependencies
weight 2
worker_has_external_dependencies!
diff --git a/app/workers/ci/build_finished_worker.rb b/app/workers/ci/build_finished_worker.rb
index 7503ea3d800..2113f7ae07b 100644
--- a/app/workers/ci/build_finished_worker.rb
+++ b/app/workers/ci/build_finished_worker.rb
@@ -40,6 +40,7 @@ module Ci
ChatNotificationWorker.perform_async(build.id) if build.pipeline.chat?
build.track_deployment_usage
build.track_verify_environment_usage
+ build.remove_token!
if build.failed? && !build.auto_retry_expected?
::Ci::MergeRequests::AddTodoWhenBuildFailsWorker.perform_async(build.id)
diff --git a/app/workers/ci/initial_pipeline_process_worker.rb b/app/workers/ci/initial_pipeline_process_worker.rb
index 8d7a62e5b09..734755f176a 100644
--- a/app/workers/ci/initial_pipeline_process_worker.rb
+++ b/app/workers/ci/initial_pipeline_process_worker.rb
@@ -17,10 +17,22 @@ module Ci
def perform(pipeline_id)
Ci::Pipeline.find_by_id(pipeline_id).try do |pipeline|
+ create_deployments!(pipeline) if Feature.enabled?(:move_create_deployments_to_worker, pipeline.project)
+
Ci::PipelineCreation::StartPipelineService
.new(pipeline)
.execute
end
end
+
+ private
+
+ def create_deployments!(pipeline)
+ pipeline.stages.flat_map(&:statuses).each { |build| create_deployment(build) }
+ end
+
+ def create_deployment(build)
+ ::Deployments::CreateForBuildService.new.execute(build)
+ end
end
end
diff --git a/app/workers/cluster_provision_worker.rb b/app/workers/cluster_provision_worker.rb
index 04c9174347f..6f3615d249c 100644
--- a/app/workers/cluster_provision_worker.rb
+++ b/app/workers/cluster_provision_worker.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class ClusterProvisionWorker # rubocop:disable Scalability/IdempotentWorker
+class ClusterProvisionWorker
include ApplicationWorker
data_consistency :always
@@ -8,17 +8,7 @@ class ClusterProvisionWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
include ClusterQueue
- worker_has_external_dependencies!
+ idempotent!
- def perform(cluster_id)
- Clusters::Cluster.find_by_id(cluster_id).try do |cluster|
- cluster.provider.try do |provider|
- if cluster.gcp?
- Clusters::Gcp::ProvisionService.new.execute(provider)
- elsif cluster.aws?
- Clusters::Aws::ProvisionService.new.execute(provider)
- end
- end
- end
- end
+ def perform(_); end
end
diff --git a/app/workers/concerns/application_worker.rb b/app/workers/concerns/application_worker.rb
index f51c2852da6..222d045b0ba 100644
--- a/app/workers/concerns/application_worker.rb
+++ b/app/workers/concerns/application_worker.rb
@@ -16,6 +16,7 @@ module ApplicationWorker
SAFE_PUSH_BULK_LIMIT = 1000
included do
+ prefer_calling_context_feature_category false
set_queue
after_set_class_attribute { set_queue }
diff --git a/app/workers/concerns/git_garbage_collect_methods.rb b/app/workers/concerns/git_garbage_collect_methods.rb
index 5c0493c9be5..c5f8c9c8464 100644
--- a/app/workers/concerns/git_garbage_collect_methods.rb
+++ b/app/workers/concerns/git_garbage_collect_methods.rb
@@ -82,28 +82,12 @@ module GitGarbageCollectMethods
def gitaly_call(task, resource)
repository = resource.repository.raw_repository
+ client = repository.gitaly_repository_client
- if Feature.enabled?(:optimized_housekeeping, container(resource))
- client = repository.gitaly_repository_client
-
- if task == :prune
- client.prune_unreachable_objects
- else
- client.optimize_repository
- end
+ if task == :prune
+ client.prune_unreachable_objects
else
- client = get_gitaly_client(task, repository)
-
- case task
- when :prune, :gc
- client.garbage_collect(bitmaps_enabled?, prune: task == :prune)
- when :full_repack
- client.repack_full(bitmaps_enabled?)
- when :incremental_repack
- client.repack_incremental
- when :pack_refs
- client.pack_refs
- end
+ client.optimize_repository
end
rescue GRPC::NotFound => e
Gitlab::GitLogger.error("#{__method__} failed:\nRepository not found")
@@ -113,22 +97,6 @@ module GitGarbageCollectMethods
raise Gitlab::Git::CommandError, e
end
- def get_gitaly_client(task, repository)
- if task == :pack_refs
- Gitlab::GitalyClient::RefService
- else
- Gitlab::GitalyClient::RepositoryService
- end.new(repository)
- end
-
- # The option to enable/disable bitmaps has been removed in https://gitlab.com/gitlab-org/gitlab/-/issues/353777
- # Now the options is always enabled
- # This method and all the deprecated RPCs are going to be removed in
- # https://gitlab.com/gitlab-org/gitlab/-/issues/353779
- def bitmaps_enabled?
- true
- end
-
def flush_ref_caches(resource)
resource.repository.expire_branches_cache
resource.repository.branch_names
@@ -136,8 +104,6 @@ module GitGarbageCollectMethods
end
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
diff --git a/app/workers/concerns/update_repository_storage_worker.rb b/app/workers/concerns/update_repository_storage_worker.rb
index f46b64895a2..01744d1e57d 100644
--- a/app/workers/concerns/update_repository_storage_worker.rb
+++ b/app/workers/concerns/update_repository_storage_worker.rb
@@ -5,6 +5,7 @@ module UpdateRepositoryStorageWorker
include ApplicationWorker
included do
+ deduplicate :until_executed
idempotent!
feature_category :gitaly
urgency :throttled
diff --git a/app/workers/concerns/worker_attributes.rb b/app/workers/concerns/worker_attributes.rb
index 8a135bc1853..1674ed1483a 100644
--- a/app/workers/concerns/worker_attributes.rb
+++ b/app/workers/concerns/worker_attributes.rb
@@ -38,12 +38,17 @@ module WorkerAttributes
set_class_attribute(:feature_category, value)
end
+ def prefer_calling_context_feature_category(preference = false)
+ set_class_attribute(:prefer_calling_context_feature_category, preference)
+ end
+
# Special case: if a worker is not owned, get the feature category
# (if present) from the calling context.
def get_feature_category
feature_category = get_class_attribute(:feature_category)
+ calling_context_feature_category_preferred = !!get_class_attribute(:prefer_calling_context_feature_category)
- return feature_category unless feature_category == :not_owned
+ return feature_category unless feature_category == :not_owned || calling_context_feature_category_preferred
Gitlab::ApplicationContext.current_context_attribute('meta.feature_category') || feature_category
end
diff --git a/app/workers/counters/cleanup_refresh_worker.rb b/app/workers/counters/cleanup_refresh_worker.rb
new file mode 100644
index 00000000000..97e6a56d6e7
--- /dev/null
+++ b/app/workers/counters/cleanup_refresh_worker.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+module Counters
+ class CleanupRefreshWorker
+ include ApplicationWorker
+
+ data_consistency :always
+
+ loggable_arguments 0, 2
+
+ # The counter is owned by several teams depending on the attribute
+ feature_category :not_owned # rubocop:disable Gitlab/AvoidFeatureCategoryNotOwned
+
+ urgency :low
+ deduplicate :until_executing, including_scheduled: true
+
+ idempotent!
+
+ def perform(model_name, model_id, attribute)
+ Gitlab::ApplicationContext.push(feature_category: :build_artifacts) if attribute.to_s == 'build_artifacts_size'
+
+ return unless self.class.const_defined?(model_name)
+
+ model_class = model_name.constantize
+ model = model_class.find_by_id(model_id)
+ return unless model
+
+ Gitlab::Counters::BufferedCounter.new(model, attribute).cleanup_refresh
+ end
+ end
+end
diff --git a/app/workers/create_note_diff_file_worker.rb b/app/workers/create_note_diff_file_worker.rb
index 8481fd0a2ab..c5b5e1cef41 100644
--- a/app/workers/create_note_diff_file_worker.rb
+++ b/app/workers/create_note_diff_file_worker.rb
@@ -7,7 +7,7 @@ class CreateNoteDiffFileWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
def perform(diff_note_id)
return unless diff_note_id.present?
diff --git a/app/workers/database/batched_background_migration/single_database_worker.rb b/app/workers/database/batched_background_migration/single_database_worker.rb
index e772216e557..b7b46937db2 100644
--- a/app/workers/database/batched_background_migration/single_database_worker.rb
+++ b/app/workers/database/batched_background_migration/single_database_worker.rb
@@ -16,6 +16,7 @@ module Database
included do
data_consistency :always
feature_category :database
+ prefer_calling_context_feature_category true
idempotent!
end
diff --git a/app/workers/delete_diff_files_worker.rb b/app/workers/delete_diff_files_worker.rb
index 54d8fcb6dfd..f9f5e6ed35b 100644
--- a/app/workers/delete_diff_files_worker.rb
+++ b/app/workers/delete_diff_files_worker.rb
@@ -7,7 +7,7 @@ class DeleteDiffFilesWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
# rubocop: disable CodeReuse/ActiveRecord
def perform(merge_request_diff_id)
diff --git a/app/workers/gitlab/github_gists_import/finish_import_worker.rb b/app/workers/gitlab/github_gists_import/finish_import_worker.rb
index 1989b6314ea..284e5833f0c 100644
--- a/app/workers/gitlab/github_gists_import/finish_import_worker.rb
+++ b/app/workers/gitlab/github_gists_import/finish_import_worker.rb
@@ -18,14 +18,15 @@ module Gitlab
INTERVAL = 30.seconds.to_i
BLOCKING_WAIT_TIME = 5
+ GISTS_ERRORS_BY_ID = 'gitlab:github-gists-import:%{user_id}:errors'
def perform(user_id, waiter_key, remaining)
waiter = wait_for_jobs(waiter_key, remaining)
if waiter.nil?
Gitlab::GithubGistsImport::Status.new(user_id).finish!
-
Gitlab::GithubImport::Logger.info(user_id: user_id, message: 'GitHub Gists import finished')
+ send_email_if_errors(user_id)
else
self.class.perform_in(INTERVAL, user_id, waiter.key, waiter.jobs_remaining)
end
@@ -41,6 +42,17 @@ module Gitlab
waiter
end
+
+ def send_email_if_errors(user_id)
+ key = format(GISTS_ERRORS_BY_ID, user_id: user_id)
+ errors = ::Gitlab::Cache::Import::Caching.values_from_hash(key)
+
+ return if errors.blank?
+
+ Notify.github_gists_import_errors_email(user_id, errors).deliver_now
+ ensure
+ ::Gitlab::Cache::Import::Caching.expire(key, ::Gitlab::Cache::Import::Caching::SHORTER_TIMEOUT)
+ end
end
end
end
diff --git a/app/workers/gitlab/github_gists_import/import_gist_worker.rb b/app/workers/gitlab/github_gists_import/import_gist_worker.rb
index 7e2b3709597..fb7fb661f4c 100644
--- a/app/workers/gitlab/github_gists_import/import_gist_worker.rb
+++ b/app/workers/gitlab/github_gists_import/import_gist_worker.rb
@@ -6,6 +6,8 @@ module Gitlab
include ApplicationWorker
include Gitlab::NotifyUponDeath
+ GISTS_ERRORS_BY_ID = 'gitlab:github-gists-import:%{user_id}:errors'
+
data_consistency :always
queue_namespace :github_gists_importer
feature_category :importers
@@ -33,16 +35,16 @@ module Gitlab
::Gitlab::GithubGistsImport::Importer::GistImporter
end
- def with_logging(user_id, gist_id)
- info(user_id, 'start importer', gist_id)
+ def with_logging(user_id, github_identifiers)
+ info(user_id, 'start importer', github_identifiers)
yield
- info(user_id, 'importer finished', gist_id)
+ info(user_id, 'importer finished', github_identifiers)
end
- def log_and_track_error(user_id, exception, gist_id)
- error(user_id, exception.message, gist_id)
+ def log_and_track_error(user_id, exception, github_identifiers)
+ error(user_id, exception.message, github_identifiers)
Gitlab::ErrorTracking.track_exception(exception,
import_type: :github_gists,
@@ -50,15 +52,17 @@ module Gitlab
)
end
- def error(user_id, error_message, gist_id)
+ def error(user_id, error_message, github_identifiers)
attributes = {
user_id: user_id,
- github_identifiers: gist_id,
+ github_identifiers: github_identifiers,
message: 'importer failed',
'error.message': error_message
}
Gitlab::GithubImport::Logger.error(structured_payload(attributes))
+
+ cache_error_for_email(user_id, github_identifiers[:id], error_message)
end
def info(user_id, message, gist_id)
@@ -70,6 +74,12 @@ module Gitlab
Gitlab::GithubImport::Logger.info(structured_payload(attributes))
end
+
+ def cache_error_for_email(user_id, gist_id, error_message)
+ key = format(GISTS_ERRORS_BY_ID, user_id: user_id)
+
+ ::Gitlab::Cache::Import::Caching.hash_add(key, gist_id, error_message)
+ end
end
end
end
diff --git a/app/workers/issues/rebalancing_worker.rb b/app/workers/issues/rebalancing_worker.rb
index 8de0588a2a1..14cb97ab0e8 100644
--- a/app/workers/issues/rebalancing_worker.rb
+++ b/app/workers/issues/rebalancing_worker.rb
@@ -19,7 +19,7 @@ module Issues
return if project_id.nil? && root_namespace_id.nil?
return if ::Gitlab::Issues::Rebalancing::State.rebalance_recently_finished?(project_id, root_namespace_id)
- # pull the projects collection to be rebalanced either the project if namespace is not a group(i.e. user namesapce)
+ # pull the projects collection to be rebalanced either the project if namespace is not a group(i.e. user namespace)
# or the root namespace, this also makes the worker backward compatible with previous version where a project_id was
# passed as the param
projects_to_rebalance = projects_collection(project_id, root_namespace_id)
diff --git a/app/workers/merge_request_cleanup_refs_worker.rb b/app/workers/merge_request_cleanup_refs_worker.rb
index db6f4649f47..92dfe8a8cb0 100644
--- a/app/workers/merge_request_cleanup_refs_worker.rb
+++ b/app/workers/merge_request_cleanup_refs_worker.rb
@@ -9,7 +9,7 @@ class MergeRequestCleanupRefsWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
idempotent!
# Hard-coded to 4 for now. Will be configurable later on via application settings.
diff --git a/app/workers/merge_request_mergeability_check_worker.rb b/app/workers/merge_request_mergeability_check_worker.rb
index 0e1ab505644..2ef4220131a 100644
--- a/app/workers/merge_request_mergeability_check_worker.rb
+++ b/app/workers/merge_request_mergeability_check_worker.rb
@@ -7,7 +7,7 @@ class MergeRequestMergeabilityCheckWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
idempotent!
def logger
diff --git a/app/workers/merge_requests/close_issue_worker.rb b/app/workers/merge_requests/close_issue_worker.rb
index 86d63e571ac..8c3ba1bc5ab 100644
--- a/app/workers/merge_requests/close_issue_worker.rb
+++ b/app/workers/merge_requests/close_issue_worker.rb
@@ -5,7 +5,7 @@ module MergeRequests
include ApplicationWorker
data_consistency :always
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :low
idempotent!
diff --git a/app/workers/merge_requests/create_approval_event_worker.rb b/app/workers/merge_requests/create_approval_event_worker.rb
index 9b1a3c262e4..09ae51e943c 100644
--- a/app/workers/merge_requests/create_approval_event_worker.rb
+++ b/app/workers/merge_requests/create_approval_event_worker.rb
@@ -5,7 +5,7 @@ module MergeRequests
include Gitlab::EventStore::Subscriber
data_consistency :always
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :low
idempotent!
diff --git a/app/workers/merge_requests/create_approval_note_worker.rb b/app/workers/merge_requests/create_approval_note_worker.rb
index 841431f6a9d..18b0533169a 100644
--- a/app/workers/merge_requests/create_approval_note_worker.rb
+++ b/app/workers/merge_requests/create_approval_note_worker.rb
@@ -5,7 +5,7 @@ module MergeRequests
include Gitlab::EventStore::Subscriber
data_consistency :always
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :low
idempotent!
diff --git a/app/workers/merge_requests/create_pipeline_worker.rb b/app/workers/merge_requests/create_pipeline_worker.rb
index b40408cf647..096f2500019 100644
--- a/app/workers/merge_requests/create_pipeline_worker.rb
+++ b/app/workers/merge_requests/create_pipeline_worker.rb
@@ -25,11 +25,15 @@ module MergeRequests
merge_request = MergeRequest.find_by_id(merge_request_id)
return unless merge_request
+ allow_duplicate = params.with_indifferent_access[:allow_duplicate]
push_options = params.with_indifferent_access[:push_options]
MergeRequests::CreatePipelineService
- .new(project: project, current_user: user, params: { push_options: push_options })
- .execute(merge_request)
+ .new(
+ project: project,
+ current_user: user,
+ params: { allow_duplicate: allow_duplicate, push_options: push_options }
+ ).execute(merge_request)
merge_request.update_head_pipeline
end
diff --git a/app/workers/merge_requests/execute_approval_hooks_worker.rb b/app/workers/merge_requests/execute_approval_hooks_worker.rb
index 81eca425a38..0a127e16f26 100644
--- a/app/workers/merge_requests/execute_approval_hooks_worker.rb
+++ b/app/workers/merge_requests/execute_approval_hooks_worker.rb
@@ -5,7 +5,7 @@ module MergeRequests
include Gitlab::EventStore::Subscriber
data_consistency :always
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :low
idempotent!
diff --git a/app/workers/merge_requests/handle_assignees_change_worker.rb b/app/workers/merge_requests/handle_assignees_change_worker.rb
index 7cf1be51d23..05e02905008 100644
--- a/app/workers/merge_requests/handle_assignees_change_worker.rb
+++ b/app/workers/merge_requests/handle_assignees_change_worker.rb
@@ -7,7 +7,7 @@ class MergeRequests::HandleAssigneesChangeWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :high
deduplicate :until_executed
idempotent!
diff --git a/app/workers/merge_requests/resolve_todos_after_approval_worker.rb b/app/workers/merge_requests/resolve_todos_after_approval_worker.rb
index 7d9c76ea872..ef02e501de1 100644
--- a/app/workers/merge_requests/resolve_todos_after_approval_worker.rb
+++ b/app/workers/merge_requests/resolve_todos_after_approval_worker.rb
@@ -5,7 +5,7 @@ module MergeRequests
include Gitlab::EventStore::Subscriber
data_consistency :always
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :low
idempotent!
diff --git a/app/workers/merge_requests/resolve_todos_worker.rb b/app/workers/merge_requests/resolve_todos_worker.rb
index 314cdac4414..15bf92c8ae1 100644
--- a/app/workers/merge_requests/resolve_todos_worker.rb
+++ b/app/workers/merge_requests/resolve_todos_worker.rb
@@ -7,7 +7,7 @@ class MergeRequests::ResolveTodosWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :high
deduplicate :until_executed
idempotent!
diff --git a/app/workers/merge_requests/update_head_pipeline_worker.rb b/app/workers/merge_requests/update_head_pipeline_worker.rb
index bc3a289c1e1..2479bc51cc4 100644
--- a/app/workers/merge_requests/update_head_pipeline_worker.rb
+++ b/app/workers/merge_requests/update_head_pipeline_worker.rb
@@ -4,7 +4,7 @@ module MergeRequests
class UpdateHeadPipelineWorker
include Gitlab::EventStore::Subscriber
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :high
worker_resource_boundary :cpu
data_consistency :always
diff --git a/app/workers/migrate_external_diffs_worker.rb b/app/workers/migrate_external_diffs_worker.rb
index 566797d8b8a..4f1393a631c 100644
--- a/app/workers/migrate_external_diffs_worker.rb
+++ b/app/workers/migrate_external_diffs_worker.rb
@@ -7,7 +7,7 @@ class MigrateExternalDiffsWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
def perform(merge_request_diff_id)
diff = MergeRequestDiff.find_by_id(merge_request_diff_id)
diff --git a/app/workers/new_merge_request_worker.rb b/app/workers/new_merge_request_worker.rb
index 9694d44e8c1..d6e8d517b5a 100644
--- a/app/workers/new_merge_request_worker.rb
+++ b/app/workers/new_merge_request_worker.rb
@@ -8,7 +8,7 @@ class NewMergeRequestWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
include NewIssuable
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :high
worker_resource_boundary :cpu
weight 2
diff --git a/app/workers/pages/invalidate_domain_cache_worker.rb b/app/workers/pages/invalidate_domain_cache_worker.rb
index 97e8966b342..1700b681b94 100644
--- a/app/workers/pages/invalidate_domain_cache_worker.rb
+++ b/app/workers/pages/invalidate_domain_cache_worker.rb
@@ -9,9 +9,9 @@ module Pages
feature_category :pages
def handle_event(event)
- if event.data[:project_id]
+ domain_ids(event).each do |domain_id|
::Gitlab::Pages::CacheControl
- .for_project(event.data[:project_id])
+ .for_domain(domain_id)
.clear_cache
end
@@ -25,5 +25,13 @@ module Pages
.clear_cache
end
end
+
+ def domain_ids(event)
+ ids = PagesDomain.ids_for_project(event.data[:project_id])
+
+ ids << event.data[:domain_id] if event.data[:domain_id]
+
+ ids
+ end
end
end
diff --git a/app/workers/personal_access_tokens/expired_notification_worker.rb b/app/workers/personal_access_tokens/expired_notification_worker.rb
index 2d0ea3d3aa4..b119957fa2c 100644
--- a/app/workers/personal_access_tokens/expired_notification_worker.rb
+++ b/app/workers/personal_access_tokens/expired_notification_worker.rb
@@ -10,16 +10,28 @@ module PersonalAccessTokens
feature_category :authentication_and_authorization
+ MAX_TOKENS = 100
+
def perform(*args)
notification_service = NotificationService.new
User.with_personal_access_tokens_expired_today.find_each do |user|
with_context(user: user) do
- Gitlab::AppLogger.info "#{self.class}: Notifying User #{user.id} about an expired token"
+ expiring_user_tokens = user.personal_access_tokens.without_impersonation.expired_today_and_not_notified
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ # We never materialise the token instances. We need the names to mention them in the
+ # email. Later we trigger an update query on the entire relation, not on individual instances.
+ token_names = expiring_user_tokens.limit(MAX_TOKENS).pluck(:name)
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ notification_service.access_token_expired(user, token_names)
- notification_service.access_token_expired(user)
+ Gitlab::AppLogger.info "#{self.class}: Notifying User #{user.id} about expired tokens"
- user.personal_access_tokens.without_impersonation.expired_today_and_not_notified.update_all(after_expiry_notification_delivered: true)
+ expiring_user_tokens.each_batch do |expiring_tokens|
+ expiring_tokens.update_all(after_expiry_notification_delivered: true)
+ end
end
end
end
diff --git a/app/workers/pipeline_schedule_worker.rb b/app/workers/pipeline_schedule_worker.rb
index 5a53d53ccf9..fb843bd421c 100644
--- a/app/workers/pipeline_schedule_worker.rb
+++ b/app/workers/pipeline_schedule_worker.rb
@@ -6,19 +6,52 @@ class PipelineScheduleWorker # rubocop:disable Scalability/IdempotentWorker
data_consistency :always
include CronjobQueue
+ include ::Gitlab::ExclusiveLeaseHelpers
+
+ LOCK_RETRY = 3
+ LOCK_TTL = 5.minutes
feature_category :continuous_integration
worker_resource_boundary :cpu
def perform
- Ci::PipelineSchedule.runnable_schedules.preloaded.find_in_batches do |schedules|
- schedules.each do |schedule|
- next unless schedule.project
+ if Feature.enabled?(:ci_use_run_pipeline_schedule_worker)
+ in_lock(lock_key, **lock_params) do
+ Ci::PipelineSchedule
+ .select(:id, :owner_id, :project_id) # Minimize the selected columns
+ .runnable_schedules
+ .preloaded
+ .find_in_batches do |schedules|
+ RunPipelineScheduleWorker.bulk_perform_async_with_contexts(
+ schedules,
+ arguments_proc: ->(schedule) { [schedule.id, schedule.owner_id] },
+ context_proc: ->(schedule) { { project: schedule.project, user: schedule.owner } }
+ )
+ end
+ end
+ else
+ Ci::PipelineSchedule.runnable_schedules.preloaded.find_in_batches do |schedules|
+ schedules.each do |schedule|
+ next unless schedule.project
- with_context(project: schedule.project, user: schedule.owner) do
- Ci::PipelineScheduleService.new(schedule.project, schedule.owner).execute(schedule)
+ with_context(project: schedule.project, user: schedule.owner) do
+ Ci::PipelineScheduleService.new(schedule.project, schedule.owner).execute(schedule)
+ end
end
end
end
end
+
+ private
+
+ def lock_key
+ self.class.name.underscore
+ end
+
+ def lock_params
+ {
+ ttl: LOCK_TTL,
+ retries: LOCK_RETRY
+ }
+ end
end
diff --git a/app/workers/projects/delete_branch_worker.rb b/app/workers/projects/delete_branch_worker.rb
index 1949fb67e83..339fa478de9 100644
--- a/app/workers/projects/delete_branch_worker.rb
+++ b/app/workers/projects/delete_branch_worker.rb
@@ -4,6 +4,9 @@ module Projects
class DeleteBranchWorker
include ApplicationWorker
+ # Temporary error when Gitaly cannot lock the branch reference. A retry should solve it.
+ GitReferenceLockedError = Class.new(::Gitlab::SidekiqMiddleware::RetryError)
+
data_consistency :always
feature_category :source_code_management
@@ -20,11 +23,10 @@ module Projects
delete_service_result = ::Branches::DeleteService.new(project, user)
.execute(branch_name)
- return unless Feature.enabled?(:track_and_raise_delete_source_errors, project)
# Only want to raise on 400 to avoid permission and non existant branch error
return unless delete_service_result[:http_status] == 400
- delete_service_result.track_and_raise_exception
+ delete_service_result.log_and_raise_exception(as: GitReferenceLockedError)
end
end
end
diff --git a/app/workers/projects/finalize_project_statistics_refresh_worker.rb b/app/workers/projects/finalize_project_statistics_refresh_worker.rb
new file mode 100644
index 00000000000..d8b06f55c38
--- /dev/null
+++ b/app/workers/projects/finalize_project_statistics_refresh_worker.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+module Projects
+ class FinalizeProjectStatisticsRefreshWorker
+ include ApplicationWorker
+
+ data_consistency :always
+
+ loggable_arguments 0, 1
+
+ # The increments in `ProjectStatistics` are owned by several teams depending
+ # on the counter
+ feature_category :not_owned # rubocop:disable Gitlab/AvoidFeatureCategoryNotOwned
+
+ urgency :low
+ deduplicate :until_executing, including_scheduled: true
+
+ idempotent!
+
+ def perform(record_class, record_id)
+ if record_class.demodulize == 'BuildArtifactsSizeRefresh'
+ Gitlab::ApplicationContext.push(feature_category: :build_artifacts)
+ end
+
+ return unless self.class.const_defined?(record_class)
+
+ record = record_class.constantize.find_by_id(record_id)
+ return unless record
+
+ record.finalize!
+ end
+ end
+end
diff --git a/app/workers/projects/git_garbage_collect_worker.rb b/app/workers/projects/git_garbage_collect_worker.rb
index 9ac3953e83c..8c0100dd05b 100644
--- a/app/workers/projects/git_garbage_collect_worker.rb
+++ b/app/workers/projects/git_garbage_collect_worker.rb
@@ -7,12 +7,6 @@ module Projects
private
- # Used for getting a project/group out of the resource in order to scope a feature flag
- # Can be removed within https://gitlab.com/gitlab-org/gitlab/-/issues/353607
- def container(resource)
- resource
- end
-
override :find_resource
def find_resource(id)
Project.find(id)
diff --git a/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb b/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb
index 705bf0534f7..ec23bde5898 100644
--- a/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb
+++ b/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb
@@ -11,6 +11,10 @@ module Projects
idempotent!
+ MAX_RUNNING_LOW = 1
+ MAX_RUNNING_MEDIUM = 3
+ MAX_RUNNING_HIGH = 5
+
def perform_work(*args)
refresh = Projects::RefreshBuildArtifactsSizeStatisticsService.new.execute
return unless refresh
@@ -33,8 +37,12 @@ module Projects
end
def max_running_jobs
- if ::Feature.enabled?(:projects_build_artifacts_size_refresh, type: :ops)
- 10
+ if ::Feature.enabled?(:projects_build_artifacts_size_refresh_high, type: :ops)
+ MAX_RUNNING_HIGH
+ elsif ::Feature.enabled?(:projects_build_artifacts_size_refresh_medium, type: :ops)
+ MAX_RUNNING_MEDIUM
+ elsif ::Feature.enabled?(:projects_build_artifacts_size_refresh, type: :ops)
+ MAX_RUNNING_LOW
else
0
end
diff --git a/app/workers/remove_unreferenced_lfs_objects_worker.rb b/app/workers/remove_unreferenced_lfs_objects_worker.rb
index c67ab6e356a..52e17b250c8 100644
--- a/app/workers/remove_unreferenced_lfs_objects_worker.rb
+++ b/app/workers/remove_unreferenced_lfs_objects_worker.rb
@@ -10,7 +10,7 @@ class RemoveUnreferencedLfsObjectsWorker
include CronjobQueue
# rubocop:enable Scalability/CronWorkerContext
- feature_category :git_lfs
+ feature_category :source_code_management
deduplicate :until_executed
idempotent!
diff --git a/app/workers/repository_import_worker.rb b/app/workers/repository_import_worker.rb
index 5e89b9f3362..f9e12c5135a 100644
--- a/app/workers/repository_import_worker.rb
+++ b/app/workers/repository_import_worker.rb
@@ -18,9 +18,8 @@ class RepositoryImportWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options memory_killer_max_memory_growth_kb: ENV.fetch('MEMORY_KILLER_REPOSITORY_IMPORT_WORKER_MAX_MEMORY_GROWTH_KB', 300_000).to_i
def perform(project_id)
- @project = Project.find(project_id)
-
- return unless start_import
+ @project = Project.find_by_id(project_id)
+ return if project.nil? || !start_import?
Gitlab::Metrics.add_event(:import_repository)
@@ -42,7 +41,7 @@ class RepositoryImportWorker # rubocop:disable Scalability/IdempotentWorker
attr_reader :project
- def start_import
+ def start_import?
return true if start(project.import_state)
Gitlab::Import::Logger.info(
diff --git a/app/workers/run_pipeline_schedule_worker.rb b/app/workers/run_pipeline_schedule_worker.rb
index f31f006eec1..db82cf3af91 100644
--- a/app/workers/run_pipeline_schedule_worker.rb
+++ b/app/workers/run_pipeline_schedule_worker.rb
@@ -13,12 +13,18 @@ class RunPipelineScheduleWorker # rubocop:disable Scalability/IdempotentWorker
deduplicate :until_executed
idempotent!
- def perform(schedule_id, user_id)
+ def perform(schedule_id, user_id, options = {})
schedule = Ci::PipelineSchedule.find_by_id(schedule_id)
user = User.find_by_id(user_id)
return unless schedule && schedule.project && user
+ if Feature.enabled?(:ci_use_run_pipeline_schedule_worker)
+ return if schedule.next_run_at > Time.current
+
+ update_next_run_at_for(schedule)
+ end
+
run_pipeline_schedule(schedule, user)
end
@@ -37,6 +43,12 @@ class RunPipelineScheduleWorker # rubocop:disable Scalability/IdempotentWorker
private
+ def update_next_run_at_for(schedule)
+ # Ensure `next_run_at` is set properly before creating a pipeline.
+ # Otherwise, multiple pipelines could be created in a short interval.
+ schedule.schedule_next_run!
+ end
+
def error(schedule, error)
failed_creation_counter.increment
log_error(schedule, error)
diff --git a/app/workers/schedule_merge_request_cleanup_refs_worker.rb b/app/workers/schedule_merge_request_cleanup_refs_worker.rb
index 8099c3d56b6..ced1f443ea6 100644
--- a/app/workers/schedule_merge_request_cleanup_refs_worker.rb
+++ b/app/workers/schedule_merge_request_cleanup_refs_worker.rb
@@ -7,7 +7,7 @@ class ScheduleMergeRequestCleanupRefsWorker
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
- feature_category :code_review
+ feature_category :code_review_workflow
idempotent!
def perform
diff --git a/app/workers/schedule_migrate_external_diffs_worker.rb b/app/workers/schedule_migrate_external_diffs_worker.rb
index b2dea5083b4..8f643cf7819 100644
--- a/app/workers/schedule_migrate_external_diffs_worker.rb
+++ b/app/workers/schedule_migrate_external_diffs_worker.rb
@@ -13,7 +13,7 @@ class ScheduleMigrateExternalDiffsWorker # rubocop:disable Scalability/Idempoten
include Gitlab::ExclusiveLeaseHelpers
- feature_category :code_review
+ feature_category :code_review_workflow
def perform
in_lock(self.class.name.underscore, ttl: 2.hours, retries: 0) do
diff --git a/app/workers/stuck_merge_jobs_worker.rb b/app/workers/stuck_merge_jobs_worker.rb
index 3a650fcb7bf..44f2d5ade58 100644
--- a/app/workers/stuck_merge_jobs_worker.rb
+++ b/app/workers/stuck_merge_jobs_worker.rb
@@ -7,7 +7,7 @@ class StuckMergeJobsWorker # rubocop:disable Scalability/IdempotentWorker
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
- feature_category :code_review
+ feature_category :code_review_workflow
def self.logger
Gitlab::AppLogger
diff --git a/app/workers/update_merge_requests_worker.rb b/app/workers/update_merge_requests_worker.rb
index eb69c0eaba6..caf46c1ac4e 100644
--- a/app/workers/update_merge_requests_worker.rb
+++ b/app/workers/update_merge_requests_worker.rb
@@ -7,7 +7,7 @@ class UpdateMergeRequestsWorker # rubocop:disable Scalability/IdempotentWorker
sidekiq_options retry: 3
- feature_category :code_review
+ feature_category :code_review_workflow
urgency :high
worker_resource_boundary :cpu
weight 3
diff --git a/app/workers/wait_for_cluster_creation_worker.rb b/app/workers/wait_for_cluster_creation_worker.rb
index af351c3c207..a34f5386363 100644
--- a/app/workers/wait_for_cluster_creation_worker.rb
+++ b/app/workers/wait_for_cluster_creation_worker.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class WaitForClusterCreationWorker # rubocop:disable Scalability/IdempotentWorker
+class WaitForClusterCreationWorker
include ApplicationWorker
data_consistency :always
@@ -8,17 +8,7 @@ class WaitForClusterCreationWorker # rubocop:disable Scalability/IdempotentWorke
sidekiq_options retry: 3
include ClusterQueue
- worker_has_external_dependencies!
+ idempotent!
- def perform(cluster_id)
- Clusters::Cluster.find_by_id(cluster_id).try do |cluster|
- cluster.provider.try do |provider|
- if cluster.gcp?
- Clusters::Gcp::VerifyProvisionStatusService.new.execute(provider)
- elsif cluster.aws?
- Clusters::Aws::VerifyProvisionStatusService.new.execute(provider)
- end
- end
- end
- end
+ def perform(_); end
end
diff --git a/app/workers/wikis/git_garbage_collect_worker.rb b/app/workers/wikis/git_garbage_collect_worker.rb
index 977493834c9..ab702653989 100644
--- a/app/workers/wikis/git_garbage_collect_worker.rb
+++ b/app/workers/wikis/git_garbage_collect_worker.rb
@@ -7,12 +7,6 @@ module Wikis
private
- # Used for getting a project/group out of the resource in order to scope a feature flag
- # Can be removed within https://gitlab.com/gitlab-org/gitlab/-/issues/353607
- def container(resource)
- resource.container
- end
-
override :find_resource
def find_resource(id)
Project.find(id).wiki