Check that hooks directory exists before attempting to call realpath This MR checks that the hooks directories actually exist before attempting to resolve their `realpath`. Users who attempted to restore from source to an omnibus installation would get ugly errors when running `gitlab-rake gitlab:check`: ``` Errno::ENOENT: No such file or directory @ realpath_rec - /var/opt/gitlab/git-data/repositories/Wanda/www.git/hooks /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:488:in `realpath' /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:488:in `block in check_repos_hooks_directory_is_link' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/relation/batches.rb:52:in `block (2 levels) in find_each' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/relation/batches.rb:52:in `each' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/relation/batches.rb:52:in `block in find_each' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/relation/batches.rb:126:in `find_in_batches' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/relation/batches.rb:51:in `find_each' /opt/gitlab/embedded/service/gem/ruby/2.1.0/gems/activerecord-4.1.11/lib/active_record/querying.rb:9:in `find_each' /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:482:in `check_repos_hooks_directory_is_link' /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/check.rake:343:in `block (3 levels) in <top (required)>' Tasks: TOP => gitlab:check => gitlab:gitlab_shell:check ``` Closes #2121 #2082 See merge request !1068 |
||
|---|---|---|
| .. | ||
| gitlab | ||
| migrate | ||
| .gitkeep | ||
| brakeman.rake | ||
| cache.rake | ||
| dev.rake | ||
| rubocop.rake | ||
| setup.rake | ||
| sidekiq.rake | ||
| spec.rake | ||
| spinach.rake | ||
| test.rake | ||