Make staging more dependable
We deploy on staging before production as a safe step.
However, due to not having repositories there we are hit with a wall of 500 pages:
Started GET "/gitlab-org/gitlab-ce/merge_requests/5293" for 146.185.164.150 at 2016-12-28 12:51:44 +0000
ActionView::Template::Error (no implicit conversion of nil into String):
3: = render 'shared/nav_scroll'
4: .nav-links.sub-nav.scrolling-tabs{ class: ('build' if local_assigns.fetch(:build_subnav, false)) }
5: %ul{ class: (container_class) }
6: - if project_nav_tab? :pipelines
7: = nav_link(controller: :pipelines) do
8: = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
9: %span
app/models/repository.rb:84:in `join'
app/models/repository.rb:84:in `path_to_repo'
lib/gitlab/metrics/instrumentation.rb:155:in `block in path_to_repo'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `path_to_repo'
app/models/repository.rb:1331:in `refs_directory_exists?'
lib/gitlab/metrics/instrumentation.rb:155:in `block in refs_directory_exists?'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `refs_directory_exists?'
app/models/repository.rb:566:in `exists?'
lib/gitlab/metrics/instrumentation.rb:155:in `block in _uncached_exists?'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `_uncached_exists?'
app/models/repository.rb:54:in `block (2 levels) in cache_method'
lib/repository_cache.rb:20:in `fetch'
app/models/repository.rb:1305:in `cache_method_output'
lib/gitlab/metrics/instrumentation.rb:155:in `block in cache_method_output'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `cache_method_output'
app/models/repository.rb:54:in `block in cache_method'
lib/gitlab/metrics/instrumentation.rb:155:in `block in exists?'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `exists?'
app/models/repository.rb:1202:in `empty_repo?'
lib/gitlab/metrics/instrumentation.rb:155:in `block in empty_repo?'
lib/gitlab/metrics/method_call.rb:23:in `measure'
lib/gitlab/metrics/instrumentation.rb:155:in `empty_repo?'
app/models/project.rb:956:in `empty_repo?'
app/helpers/projects_helper.rb:166:in `get_project_nav_tabs'
app/helpers/projects_helper.rb:85:in `project_nav_tabs'
app/helpers/projects_helper.rb:89:in `project_nav_tab?'
app/views/projects/pipelines/_head.html.haml:6:in `block in _app_views_projects_pipelines__head_html_haml___4103629325538228199_70334032095800'
app/views/projects/pipelines/_head.html.haml:1:in `_app_views_projects_pipelines__head_html_haml___4103629325538228199_70334032095800'
app/views/projects/pipelines/index.html.haml:3:in `_app_views_projects_pipelines_index_html_haml__444066602496024952_70334021697820'
lib/gitlab/middleware/multipart.rb:93:in `call'
lib/gitlab/request_profiler/middleware.rb:15:in `call'
lib/gitlab/middleware/rails_queue_duration.rb:20:in `call'
lib/gitlab/metrics/rack_middleware.rb:29:in `block in call'
lib/gitlab/metrics/transaction.rb:49:in `run'
lib/gitlab/metrics/rack_middleware.rb:29:in `call'
lib/gitlab/middleware/go.rb:16:in `call'
lib/gitlab/middleware/readonly_geo.rb:29:in `call'
Sad thing is, we are now used to brushing it off as a staging quirk. This is possibly hiding some real problems. I don't really know who's issue this is (Backend on Infra) but we need to have staging we can depend on.
Can we do something about this as P1 please?