summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2018-07-10 23:13:50 +0000
committerRobert Speicher <robert@gitlab.com>2018-07-10 23:13:50 +0000
commitc2a0a3ab1aed9814c1044c753b3f31b29b6142b1 (patch)
treeaa819b265156a17ebbe31af15c152c1ebefa70e4
parent9e72e5e65354b1e0ecde126d754fd863ac8f38b0 (diff)
parent0c1eebe24c9717da10c6335b91273dbb73061ff8 (diff)
downloadgitlab-ce-c2a0a3ab1aed9814c1044c753b3f31b29b6142b1.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.rb4
-rw-r--r--spec/workers/git_garbage_collect_worker_spec.rb6
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