diff options
author | Robert Speicher <robert@gitlab.com> | 2018-07-10 23:13:50 +0000 |
---|---|---|
committer | Alessio Caiazza <acaiazza@gitlab.com> | 2018-07-11 10:39:37 +0200 |
commit | 1a98116df61a30bc92c1edc9c8a25fef516d036d (patch) | |
tree | 24feca4b4611154332e893f4148eb29d5ba5a4dc | |
parent | 24aaeb92a7dda548f61c56d0c424c5ea935a07b3 (diff) | |
download | gitlab-ce-1a98116df61a30bc92c1edc9c8a25fef516d036d.tar.gz |
Merge branch 'sh-fix-git-gc-error-handling' into 'master'
Fix ArgumentError in GitGarbageCollectWorker Sidekiq job
Closes #49096
See merge request gitlab-org/gitlab-ce!20541
-rw-r--r-- | app/workers/git_garbage_collect_worker.rb | 4 | ||||
-rw-r--r-- | spec/workers/git_garbage_collect_worker_spec.rb | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/app/workers/git_garbage_collect_worker.rb b/app/workers/git_garbage_collect_worker.rb index fd49bc18161..2d381c6fd6c 100644 --- a/app/workers/git_garbage_collect_worker.rb +++ b/app/workers/git_garbage_collect_worker.rb @@ -65,10 +65,10 @@ class GitGarbageCollectWorker client.repack_incremental end rescue GRPC::NotFound => e - Gitlab::GitLogger.error("#{method} failed:\nRepository not found") + Gitlab::GitLogger.error("#{__method__} failed:\nRepository not found") raise Gitlab::Git::Repository::NoRepository.new(e) rescue GRPC::BadStatus => e - Gitlab::GitLogger.error("#{method} failed:\n#{e}") + Gitlab::GitLogger.error("#{__method__} failed:\n#{e}") raise Gitlab::Git::CommandError.new(e) end diff --git a/spec/workers/git_garbage_collect_worker_spec.rb b/spec/workers/git_garbage_collect_worker_spec.rb index e39dec556fc..d5808e21271 100644 --- a/spec/workers/git_garbage_collect_worker_spec.rb +++ b/spec/workers/git_garbage_collect_worker_spec.rb @@ -27,6 +27,12 @@ describe GitGarbageCollectWorker do subject.perform(project.id, :gc, lease_key, lease_uuid) end + + it 'handles gRPC errors' do + expect_any_instance_of(Gitlab::GitalyClient::RepositoryService).to receive(:garbage_collect).and_raise(GRPC::NotFound) + + expect { subject.perform(project.id, :gc, lease_key, lease_uuid) }.to raise_exception(Gitlab::Git::Repository::NoRepository) + end end context 'with different lease than the active one' do |