diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/services/projects/destroy_service.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb index b805a7f1211..ec9aeb4a077 100644 --- a/app/services/projects/destroy_service.rb +++ b/app/services/projects/destroy_service.rb @@ -210,11 +210,19 @@ module Projects end def flush_caches(project) - project.repository.before_delete + ignore_git_errors { project.repository.before_delete } - Repository.new(wiki_path, project, disk_path: repo_path).before_delete + ignore_git_errors { Repository.new(wiki_path, project, disk_path: repo_path).before_delete } Projects::ForksCountService.new(project).delete_cache end + + # If we get a Gitaly error, the repository may be corrupted. We can + # ignore these errors since we're going to trash the repositories + # anyway. + def ignore_git_errors(&block) + yield + rescue Gitlab::Git::CommandError + end end end |