Renaming project race condition
ZD: https://gitlab.zendesk.com/agent/tickets/23819
Overview: Projects that are scheduled for delation can be renamed, no checks are performed to determine if the project is set for deletion.
- Schedule delete of his project
- Rename project (before deletion)
- Attempt to visit renamed project
Demo: https://drive.google.com/a/gitlab.com/file/d/0B_4wYK1qcPT1aVh6Z25OQ3pSUjQ/view
Error:
Started GET "/root/new-test-project_renamed"
Processing by ProjectsController#show as HTML
Parameters: {"namespace_id"=>"root", "id"=>"new-test-project_renamed"}
Completed 500 Internal Server Error in 288ms (ActiveRecord: 23.5ms)
ActionView::Template::Error (undefined method `namespace' for nil:NilClass):
9:
10: - if can_create_issue
11: %li
12: = link_to url_for_new_issue(@project, only_path: true) do
13: = icon('exclamation-circle fw')
14: New issue
15:
app/models/project_services/gitlab_issue_tracker_service.rb:50:in `new_issue_path'
app/helpers/issues_helper.rb:37:in `url_for_new_issue'
app/views/projects/buttons/_dropdown.html.haml:12:in `_app_views_projects_buttons__dropdown_html_haml__672172898567203892_80399900'
app/views/projects/_home_panel.html.haml:55:in `_app_views_projects__home_panel_html_haml___3226447882635340998_85318640'
app/views/projects/empty.html.haml:8:in `_app_views_projects_empty_html_haml___2297093811040757992_59336900'
app/controllers/projects_controller.rb:114:in `block (2 levels) in show'
app/controllers/projects_controller.rb:102:in `show'
lib/gitlab/middleware/go.rb:16:in `call'