diff options
Diffstat (limited to 'app/workers/project_export_worker.rb')
-rw-r--r-- | app/workers/project_export_worker.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/workers/project_export_worker.rb b/app/workers/project_export_worker.rb index 4dd9a9c6fcb..e3f8c4bcd9d 100644 --- a/app/workers/project_export_worker.rb +++ b/app/workers/project_export_worker.rb @@ -24,8 +24,15 @@ class ProjectExportWorker # rubocop:disable Scalability/IdempotentWorker ::Projects::ImportExport::ExportService.new(project, current_user, params).execute(after_export) export_job&.finish - rescue ActiveRecord::RecordNotFound, Gitlab::ImportExport::AfterExportStrategyBuilder::StrategyNotFoundError => e - logger.error("Failed to export project #{project_id}: #{e.message}") + rescue ActiveRecord::RecordNotFound => e + log_failure(project_id, e) + rescue Gitlab::ImportExport::AfterExportStrategyBuilder::StrategyNotFoundError => e + log_failure(project_id, e) + export_job&.finish + rescue StandardError => e + log_failure(project_id, e) + export_job&.fail_op + raise end private @@ -35,4 +42,8 @@ class ProjectExportWorker # rubocop:disable Scalability/IdempotentWorker Gitlab::ImportExport::AfterExportStrategyBuilder.build!(strategy_klass, after_export_strategy) end + + def log_failure(project_id, ex) + logger.error("Failed to export project #{project_id}: #{ex.message}") + end end |