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>2021-04-30 21:10:09 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-30 21:10:09 +0300
commitd899d2a373f8be3d94760299faafa19c3c432c1e (patch)
treec4648e948c6f8c5428bc0e0046b1dc2200e00402 /spec/workers
parent69d28d313c2a65ead87229841a50bfc130e8c952 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/workers')
-rw-r--r--spec/workers/every_sidekiq_worker_spec.rb370
1 files changed, 370 insertions, 0 deletions
diff --git a/spec/workers/every_sidekiq_worker_spec.rb b/spec/workers/every_sidekiq_worker_spec.rb
index 5a22529b6d6..de848e59d57 100644
--- a/spec/workers/every_sidekiq_worker_spec.rb
+++ b/spec/workers/every_sidekiq_worker_spec.rb
@@ -104,4 +104,374 @@ RSpec.describe 'Every Sidekiq worker' do
end
end
end
+
+ context 'retries' do
+ let(:cronjobs) do
+ workers_without_defaults.select { |worker| worker.klass < CronjobQueue }
+ end
+
+ let(:retry_exception_workers) do
+ workers_without_defaults.select { |worker| retry_exceptions.has_key?(worker.klass.to_s) }
+ end
+
+ let(:retry_exceptions) do
+ {
+ 'AdjournedProjectDeletionWorker' => 3,
+ 'AdminEmailsWorker' => 3,
+ 'Analytics::CodeReviewMetricsWorker' => 3,
+ 'Analytics::DevopsAdoption::CreateSnapshotWorker' => 3,
+ 'Analytics::InstanceStatistics::CounterJobWorker' => 3,
+ 'Analytics::UsageTrends::CounterJobWorker' => 3,
+ 'ApprovalRules::ExternalApprovalRulePayloadWorker' => 3,
+ 'ApproveBlockedPendingApprovalUsersWorker' => 3,
+ 'ArchiveTraceWorker' => 3,
+ 'AuthorizedKeysWorker' => 3,
+ 'AuthorizedProjectUpdate::ProjectCreateWorker' => 3,
+ 'AuthorizedProjectUpdate::ProjectGroupLinkCreateWorker' => 3,
+ 'AuthorizedProjectUpdate::UserRefreshOverUserRangeWorker' => 3,
+ 'AuthorizedProjectUpdate::UserRefreshWithLowUrgencyWorker' => 3,
+ 'AuthorizedProjectsWorker' => 3,
+ 'AutoDevops::DisableWorker' => 3,
+ 'AutoMergeProcessWorker' => 3,
+ 'BackgroundMigrationWorker' => 3,
+ 'BuildFinishedWorker' => 3,
+ 'BuildHooksWorker' => 3,
+ 'BuildQueueWorker' => 3,
+ 'BuildSuccessWorker' => 3,
+ 'BulkImportWorker' => false,
+ 'BulkImports::EntityWorker' => false,
+ 'BulkImports::PipelineWorker' => false,
+ 'Chaos::CpuSpinWorker' => 3,
+ 'Chaos::DbSpinWorker' => 3,
+ 'Chaos::KillWorker' => false,
+ 'Chaos::LeakMemWorker' => 3,
+ 'Chaos::SleepWorker' => 3,
+ 'ChatNotificationWorker' => false,
+ 'Ci::BatchResetMinutesWorker' => 10,
+ 'Ci::BuildPrepareWorker' => 3,
+ 'Ci::BuildScheduleWorker' => 3,
+ 'Ci::BuildTraceChunkFlushWorker' => 3,
+ 'Ci::CreateCrossProjectPipelineWorker' => 3,
+ 'Ci::DailyBuildGroupReportResultsWorker' => 3,
+ 'Ci::DeleteObjectsWorker' => 0,
+ 'Ci::DropPipelineWorker' => 3,
+ 'Ci::InitialPipelineProcessWorker' => 3,
+ 'Ci::MergeRequests::AddTodoWhenBuildFailsWorker' => 3,
+ 'Ci::PipelineArtifacts::CoverageReportWorker' => 3,
+ 'Ci::PipelineArtifacts::CreateQualityReportWorker' => 3,
+ 'Ci::PipelineBridgeStatusWorker' => 3,
+ 'Ci::PipelineSuccessUnlockArtifactsWorker' => 3,
+ 'Ci::RefDeleteUnlockArtifactsWorker' => 3,
+ 'Ci::ResourceGroups::AssignResourceFromResourceGroupWorker' => 3,
+ 'Ci::TestFailureHistoryWorker' => 3,
+ 'Ci::TriggerDownstreamSubscriptionsWorker' => 3,
+ 'CleanupContainerRepositoryWorker' => 3,
+ 'ClusterConfigureIstioWorker' => 3,
+ 'ClusterInstallAppWorker' => 3,
+ 'ClusterPatchAppWorker' => 3,
+ 'ClusterProvisionWorker' => 3,
+ 'ClusterUpdateAppWorker' => 3,
+ 'ClusterUpgradeAppWorker' => 3,
+ 'ClusterWaitForAppInstallationWorker' => 3,
+ 'ClusterWaitForAppUpdateWorker' => 3,
+ 'ClusterWaitForIngressIpAddressWorker' => 3,
+ 'Clusters::Applications::ActivateServiceWorker' => 3,
+ 'Clusters::Applications::DeactivateServiceWorker' => 3,
+ 'Clusters::Applications::UninstallWorker' => 3,
+ 'Clusters::Applications::WaitForUninstallAppWorker' => 3,
+ 'Clusters::Cleanup::AppWorker' => 3,
+ 'Clusters::Cleanup::ProjectNamespaceWorker' => 3,
+ 'Clusters::Cleanup::ServiceAccountWorker' => 3,
+ 'ContainerExpirationPolicies::CleanupContainerRepositoryWorker' => 0,
+ 'CreateCommitSignatureWorker' => 3,
+ 'CreateGithubWebhookWorker' => 3,
+ 'CreateNoteDiffFileWorker' => 3,
+ 'CreatePipelineWorker' => 3,
+ 'DastSiteValidationWorker' => 3,
+ 'DeleteContainerRepositoryWorker' => 3,
+ 'DeleteDiffFilesWorker' => 3,
+ 'DeleteMergedBranchesWorker' => 3,
+ 'DeleteStoredFilesWorker' => 3,
+ 'DeleteUserWorker' => 3,
+ 'Deployments::AutoRollbackWorker' => 3,
+ 'Deployments::DropOlderDeploymentsWorker' => 3,
+ 'Deployments::ExecuteHooksWorker' => 3,
+ 'Deployments::FinishedWorker' => 3,
+ 'Deployments::ForwardDeploymentWorker' => 3,
+ 'Deployments::LinkMergeRequestWorker' => 3,
+ 'Deployments::SuccessWorker' => 3,
+ 'Deployments::UpdateEnvironmentWorker' => 3,
+ 'DesignManagement::CopyDesignCollectionWorker' => 3,
+ 'DesignManagement::NewVersionWorker' => 3,
+ 'DestroyPagesDeploymentsWorker' => 3,
+ 'DetectRepositoryLanguagesWorker' => 1,
+ 'DisallowTwoFactorForGroupWorker' => 3,
+ 'DisallowTwoFactorForSubgroupsWorker' => 3,
+ 'Dora::DailyMetrics::RefreshWorker' => 3,
+ 'ElasticAssociationIndexerWorker' => 3,
+ 'ElasticCommitIndexerWorker' => 2,
+ 'ElasticDeleteProjectWorker' => 2,
+ 'ElasticFullIndexWorker' => 2,
+ 'ElasticIndexerWorker' => 2,
+ 'ElasticIndexingControlWorker' => 3,
+ 'ElasticNamespaceIndexerWorker' => 2,
+ 'ElasticNamespaceRolloutWorker' => 2,
+ 'EmailReceiverWorker' => 3,
+ 'EmailsOnPushWorker' => 3,
+ 'Environments::CanaryIngress::UpdateWorker' => false,
+ 'Epics::UpdateEpicsDatesWorker' => 3,
+ 'ErrorTrackingIssueLinkWorker' => 3,
+ 'Experiments::RecordConversionEventWorker' => 3,
+ 'ExpireBuildInstanceArtifactsWorker' => 3,
+ 'ExpireJobCacheWorker' => 3,
+ 'ExpirePipelineCacheWorker' => 3,
+ 'ExportCsvWorker' => 3,
+ 'ExternalServiceReactiveCachingWorker' => 3,
+ 'FileHookWorker' => false,
+ 'FlushCounterIncrementsWorker' => 3,
+ 'Geo::Batch::ProjectRegistrySchedulerWorker' => 3,
+ 'Geo::Batch::ProjectRegistryWorker' => 3,
+ 'Geo::ContainerRepositorySyncWorker' => 3,
+ 'Geo::DesignRepositoryShardSyncWorker' => false,
+ 'Geo::DesignRepositorySyncWorker' => 3,
+ 'Geo::DestroyWorker' => 3,
+ 'Geo::EventWorker' => 3,
+ 'Geo::FileDownloadWorker' => 3,
+ 'Geo::FileRegistryRemovalWorker' => 3,
+ 'Geo::FileRemovalWorker' => 3,
+ 'Geo::HashedStorageAttachmentsMigrationWorker' => 3,
+ 'Geo::HashedStorageMigrationWorker' => 3,
+ 'Geo::ProjectSyncWorker' => 3,
+ 'Geo::RenameRepositoryWorker' => 3,
+ 'Geo::RepositoriesCleanUpWorker' => 3,
+ 'Geo::RepositoryCleanupWorker' => 3,
+ 'Geo::RepositoryShardSyncWorker' => false,
+ 'Geo::RepositoryVerification::Primary::ShardWorker' => false,
+ 'Geo::RepositoryVerification::Primary::SingleWorker' => false,
+ 'Geo::RepositoryVerification::Secondary::SingleWorker' => false,
+ 'Geo::ReverificationBatchWorker' => 0,
+ 'Geo::Scheduler::Primary::SchedulerWorker' => 3,
+ 'Geo::Scheduler::SchedulerWorker' => 3,
+ 'Geo::Scheduler::Secondary::SchedulerWorker' => 3,
+ 'Geo::VerificationBatchWorker' => 0,
+ 'Geo::VerificationTimeoutWorker' => false,
+ 'Geo::VerificationWorker' => 3,
+ 'GeoRepositoryDestroyWorker' => 3,
+ 'GitGarbageCollectWorker' => false,
+ 'Gitlab::GithubImport::AdvanceStageWorker' => 3,
+ 'Gitlab::GithubImport::ImportDiffNoteWorker' => 5,
+ 'Gitlab::GithubImport::ImportIssueWorker' => 5,
+ 'Gitlab::GithubImport::ImportLfsObjectWorker' => 5,
+ 'Gitlab::GithubImport::ImportNoteWorker' => 5,
+ 'Gitlab::GithubImport::ImportPullRequestMergedByWorker' => 5,
+ 'Gitlab::GithubImport::ImportPullRequestReviewWorker' => 5,
+ 'Gitlab::GithubImport::ImportPullRequestWorker' => 5,
+ 'Gitlab::GithubImport::RefreshImportJidWorker' => 5,
+ 'Gitlab::GithubImport::Stage::FinishImportWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportBaseDataWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportIssuesAndDiffNotesWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportLfsObjectsWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportNotesWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsMergedByWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsReviewsWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportPullRequestsWorker' => 5,
+ 'Gitlab::GithubImport::Stage::ImportRepositoryWorker' => 5,
+ 'Gitlab::JiraImport::AdvanceStageWorker' => 5,
+ 'Gitlab::JiraImport::ImportIssueWorker' => 5,
+ 'Gitlab::JiraImport::Stage::FinishImportWorker' => 5,
+ 'Gitlab::JiraImport::Stage::ImportAttachmentsWorker' => 5,
+ 'Gitlab::JiraImport::Stage::ImportIssuesWorker' => 5,
+ 'Gitlab::JiraImport::Stage::ImportLabelsWorker' => 5,
+ 'Gitlab::JiraImport::Stage::ImportNotesWorker' => 5,
+ 'Gitlab::JiraImport::Stage::StartImportWorker' => 5,
+ 'Gitlab::PhabricatorImport::ImportTasksWorker' => 5,
+ 'GitlabPerformanceBarStatsWorker' => 3,
+ 'GitlabShellWorker' => 3,
+ 'GitlabUsagePingWorker' => 3,
+ 'GroupDestroyWorker' => 3,
+ 'GroupExportWorker' => false,
+ 'GroupImportWorker' => false,
+ 'GroupSamlGroupSyncWorker' => 3,
+ 'GroupWikis::GitGarbageCollectWorker' => false,
+ 'Groups::ScheduleBulkRepositoryShardMovesWorker' => 3,
+ 'Groups::UpdateRepositoryStorageWorker' => 3,
+ 'Groups::UpdateStatisticsWorker' => 3,
+ 'HashedStorage::MigratorWorker' => 3,
+ 'HashedStorage::ProjectMigrateWorker' => 3,
+ 'HashedStorage::ProjectRollbackWorker' => 3,
+ 'HashedStorage::RollbackerWorker' => 3,
+ 'ImportIssuesCsvWorker' => 3,
+ 'ImportSoftwareLicensesWorker' => 3,
+ 'IncidentManagement::AddSeveritySystemNoteWorker' => 3,
+ 'IncidentManagement::ApplyIncidentSlaExceededLabelWorker' => 3,
+ 'IncidentManagement::OncallRotations::PersistAllRotationsShiftsJob' => 3,
+ 'IncidentManagement::OncallRotations::PersistShiftsJob' => 3,
+ 'IncidentManagement::PagerDuty::ProcessIncidentWorker' => 3,
+ 'IncidentManagement::ProcessAlertWorker' => 3,
+ 'IncidentManagement::ProcessPrometheusAlertWorker' => 3,
+ 'InvalidGpgSignatureUpdateWorker' => 3,
+ 'IrkerWorker' => 3,
+ 'IssuableExportCsvWorker' => 3,
+ 'IssuePlacementWorker' => 3,
+ 'IssueRebalancingWorker' => 3,
+ 'IterationsUpdateStatusWorker' => 3,
+ 'JiraConnect::SyncBranchWorker' => 3,
+ 'JiraConnect::SyncBuildsWorker' => 3,
+ 'JiraConnect::SyncDeploymentsWorker' => 3,
+ 'JiraConnect::SyncFeatureFlagsWorker' => 3,
+ 'JiraConnect::SyncMergeRequestWorker' => 3,
+ 'JiraConnect::SyncProjectWorker' => 3,
+ 'LdapGroupSyncWorker' => 3,
+ 'MailScheduler::IssueDueWorker' => 3,
+ 'MailScheduler::NotificationServiceWorker' => 3,
+ 'MembersDestroyer::UnassignIssuablesWorker' => 3,
+ 'MergeRequestCleanupRefsWorker' => 3,
+ 'MergeRequestMergeabilityCheckWorker' => 3,
+ 'MergeRequestResetApprovalsWorker' => 3,
+ 'MergeRequests::AssigneesChangeWorker' => 3,
+ 'MergeRequests::CreatePipelineWorker' => 3,
+ 'MergeRequests::DeleteSourceBranchWorker' => 3,
+ 'MergeRequests::HandleAssigneesChangeWorker' => 3,
+ 'MergeRequests::ResolveTodosWorker' => 3,
+ 'MergeRequests::SyncCodeOwnerApprovalRulesWorker' => 3,
+ 'MergeTrains::RefreshWorker' => 3,
+ 'MergeWorker' => 3,
+ 'Metrics::Dashboard::PruneOldAnnotationsWorker' => 3,
+ 'Metrics::Dashboard::SyncDashboardsWorker' => 3,
+ 'MigrateExternalDiffsWorker' => 3,
+ 'NamespacelessProjectDestroyWorker' => 3,
+ 'Namespaces::OnboardingIssueCreatedWorker' => 3,
+ 'Namespaces::OnboardingPipelineCreatedWorker' => 3,
+ 'Namespaces::OnboardingProgressWorker' => 3,
+ 'Namespaces::OnboardingUserAddedWorker' => 3,
+ 'Namespaces::RootStatisticsWorker' => 3,
+ 'Namespaces::ScheduleAggregationWorker' => 3,
+ 'NetworkPolicyMetricsWorker' => 3,
+ 'NewEpicWorker' => 3,
+ 'NewIssueWorker' => 3,
+ 'NewMergeRequestWorker' => 3,
+ 'NewNoteWorker' => 3,
+ 'ObjectPool::CreateWorker' => 3,
+ 'ObjectPool::DestroyWorker' => 3,
+ 'ObjectPool::JoinWorker' => 3,
+ 'ObjectPool::ScheduleJoinWorker' => 3,
+ 'ObjectStorage::BackgroundMoveWorker' => 5,
+ 'ObjectStorage::MigrateUploadsWorker' => 3,
+ 'Packages::Composer::CacheUpdateWorker' => 3,
+ 'Packages::Go::SyncPackagesWorker' => 3,
+ 'Packages::Maven::Metadata::SyncWorker' => 3,
+ 'Packages::Nuget::ExtractionWorker' => 3,
+ 'Packages::Rubygems::ExtractionWorker' => 3,
+ 'PagesDomainSslRenewalWorker' => 3,
+ 'PagesDomainVerificationWorker' => 3,
+ 'PagesRemoveWorker' => 3,
+ 'PagesTransferWorker' => 3,
+ 'PagesUpdateConfigurationWorker' => 3,
+ 'PagesWorker' => 3,
+ 'PersonalAccessTokens::Groups::PolicyWorker' => 3,
+ 'PersonalAccessTokens::Instance::PolicyWorker' => 3,
+ 'PipelineHooksWorker' => 3,
+ 'PipelineMetricsWorker' => 3,
+ 'PipelineNotificationWorker' => 3,
+ 'PipelineProcessWorker' => 3,
+ 'PipelineUpdateWorker' => 3,
+ 'PostReceive' => 3,
+ 'ProcessCommitWorker' => 3,
+ 'ProjectCacheWorker' => 3,
+ 'ProjectDailyStatisticsWorker' => 3,
+ 'ProjectDestroyWorker' => 3,
+ 'ProjectExportWorker' => false,
+ 'ProjectImportScheduleWorker' => false,
+ 'ProjectScheduleBulkRepositoryShardMovesWorker' => 3,
+ 'ProjectServiceWorker' => 3,
+ 'ProjectTemplateExportWorker' => false,
+ 'ProjectUpdateRepositoryStorageWorker' => 3,
+ 'Projects::GitGarbageCollectWorker' => false,
+ 'Projects::PostCreationWorker' => 3,
+ 'Projects::ScheduleBulkRepositoryShardMovesWorker' => 3,
+ 'Projects::UpdateRepositoryStorageWorker' => 3,
+ 'Prometheus::CreateDefaultAlertsWorker' => 3,
+ 'PropagateIntegrationGroupWorker' => 3,
+ 'PropagateIntegrationInheritDescendantWorker' => 3,
+ 'PropagateIntegrationInheritWorker' => 3,
+ 'PropagateIntegrationProjectWorker' => 3,
+ 'PropagateIntegrationWorker' => 3,
+ 'PropagateServiceTemplateWorker' => 3,
+ 'PurgeDependencyProxyCacheWorker' => 3,
+ 'ReactiveCachingWorker' => 3,
+ 'RebaseWorker' => 3,
+ 'RefreshLicenseComplianceChecksWorker' => 3,
+ 'Releases::CreateEvidenceWorker' => 3,
+ 'RemoteMirrorNotificationWorker' => 3,
+ 'RepositoryCheck::BatchWorker' => false,
+ 'RepositoryCheck::ClearWorker' => false,
+ 'RepositoryCheck::SingleRepositoryWorker' => false,
+ 'RepositoryCleanupWorker' => 3,
+ 'RepositoryForkWorker' => 5,
+ 'RepositoryImportWorker' => false,
+ 'RepositoryPushAuditEventWorker' => 3,
+ 'RepositoryRemoveRemoteWorker' => 3,
+ 'RepositoryUpdateMirrorWorker' => false,
+ 'RepositoryUpdateRemoteMirrorWorker' => 3,
+ 'RequirementsManagement::ImportRequirementsCsvWorker' => 3,
+ 'RequirementsManagement::ProcessRequirementsReportsWorker' => 3,
+ 'RunPipelineScheduleWorker' => 3,
+ 'ScanSecurityReportSecretsWorker' => 17,
+ 'Security::AutoFixWorker' => 3,
+ 'Security::StoreScansWorker' => 3,
+ 'SelfMonitoringProjectCreateWorker' => 3,
+ 'SelfMonitoringProjectDeleteWorker' => 3,
+ 'ServiceDeskEmailReceiverWorker' => 3,
+ 'SetUserStatusBasedOnUserCapSettingWorker' => 3,
+ 'SnippetScheduleBulkRepositoryShardMovesWorker' => 3,
+ 'SnippetUpdateRepositoryStorageWorker' => 3,
+ 'Snippets::ScheduleBulkRepositoryShardMovesWorker' => 3,
+ 'Snippets::UpdateRepositoryStorageWorker' => 3,
+ 'StageUpdateWorker' => 3,
+ 'StatusPage::PublishWorker' => 5,
+ 'StoreSecurityReportsWorker' => 3,
+ 'StoreSecurityScansWorker' => 3,
+ 'SyncSeatLinkRequestWorker' => 20,
+ 'SyncSeatLinkWorker' => 12,
+ 'SyncSecurityReportsToReportApprovalRulesWorker' => 3,
+ 'SystemHookPushWorker' => 3,
+ 'TodosDestroyer::ConfidentialEpicWorker' => 3,
+ 'TodosDestroyer::ConfidentialIssueWorker' => 3,
+ 'TodosDestroyer::DestroyedIssuableWorker' => 3,
+ 'TodosDestroyer::EntityLeaveWorker' => 3,
+ 'TodosDestroyer::GroupPrivateWorker' => 3,
+ 'TodosDestroyer::PrivateFeaturesWorker' => 3,
+ 'TodosDestroyer::ProjectPrivateWorker' => 3,
+ 'UpdateExternalPullRequestsWorker' => 3,
+ 'UpdateHeadPipelineForMergeRequestWorker' => 3,
+ 'UpdateHighestRoleWorker' => 3,
+ 'UpdateMergeRequestsWorker' => 3,
+ 'UpdateProjectStatisticsWorker' => 3,
+ 'UploadChecksumWorker' => 3,
+ 'Vulnerabilities::Statistics::AdjustmentWorker' => 3,
+ 'VulnerabilityExports::ExportDeletionWorker' => 3,
+ 'VulnerabilityExports::ExportWorker' => 3,
+ 'WaitForClusterCreationWorker' => 3,
+ 'WebHookWorker' => 4,
+ 'WebHooks::DestroyWorker' => 3,
+ 'Wikis::GitGarbageCollectWorker' => false,
+ 'X509CertificateRevokeWorker' => 3
+ }
+ end
+
+ it 'uses the default number of retries for new jobs' do
+ expect(workers_without_defaults - cronjobs - retry_exception_workers).to all(have_attributes(retries: true))
+ end
+
+ it 'uses zero retries for cronjobs' do
+ expect(cronjobs - retry_exception_workers).to all(have_attributes(retries: false))
+ end
+
+ it 'uses specified numbers of retries for workers with exceptions encoded here', :aggregate_failures do
+ retry_exception_workers.each do |worker|
+ expect(worker.retries).to eq(retry_exceptions[worker.klass.to_s]),
+ "#{worker.klass} has #{worker.retries} retries, expected #{retry_exceptions[worker.klass]}"
+ end
+ end
+ end
end