diff --git a/ee/app/services/geo/container_repository_sync_service.rb b/ee/app/services/geo/container_repository_sync_service.rb index e690253f85cb72e0dd535811e270951d319d79e6..76374548b424fd83dbf78369fe1a171fc723fa20 100644 --- a/ee/app/services/geo/container_repository_sync_service.rb +++ b/ee/app/services/geo/container_repository_sync_service.rb @@ -54,13 +54,19 @@ def reschedule_sync def fail_registry_sync!(message, error) log_error(message, error) - Gitlab::ErrorTracking.track_exception(error, - { - container_repository_name: container_repository.name, - project_path: container_repository.project.full_path, - project_id: container_repository.project_id - } - ) + extra = { + container_repository_name: container_repository.name, + project_path: container_repository.project.full_path, + project_id: container_repository.project_id + } + + begin + primary_api_url = Gitlab.config&.geo&.registry_replication&.primary_api_url + extra[:primary_api_url] = primary_api_url if primary_api_url + rescue ::GitlabSettings::MissingSetting + end + + Gitlab::ErrorTracking.track_exception(error, extra) registry.failed!(message: message, error: error) end diff --git a/ee/spec/services/geo/container_repository_sync_service_spec.rb b/ee/spec/services/geo/container_repository_sync_service_spec.rb index a906e9eeeb59a6f5e26ac7d5421b1386a2fc6fd9..e8cbacad63dbee8f66088f3642ee9700f21f376e 100644 --- a/ee/spec/services/geo/container_repository_sync_service_spec.rb +++ b/ee/spec/services/geo/container_repository_sync_service_spec.rb @@ -65,6 +65,7 @@ it 'tracks exception' do error = StandardError.new('Sync Error') + stub_registry_replication_config(enabled: true, primary_api_url: 'https://foo') allow_any_instance_of(Geo::ContainerRepositorySync) .to receive(:execute).and_raise(error) @@ -73,7 +74,8 @@ { container_repository_name: container_repository.name, project_path: container_repository.project.full_path, - project_id: container_repository.project_id + project_id: container_repository.project_id, + primary_api_url: 'https://foo' } )