• Dmitriy Zaporozhets's avatar
    Merge branch 'fix-error-500-global-search-issues' into 'master' · c75ac821
    Dmitriy Zaporozhets authored
    Fix Error 500 when doing a search in dashboard before visiting any project
    
    If a search turned up an issue, under certain conditions you would see this error:
    
    ```
    ActionView::Template::Error (undefined method `path_with_namespace' for nil:NilClass):
         6:   - if issue.description.present?
         7:     .description.term
         8:       = preserve do
         9:         = search_md_sanitize(markdown(issue.description))
        10:   %span.light
        11:     #{issue.project.name_with_namespace}
        12:   - if issue.closed?
      lib/gitlab/markdown/upload_link_filter.rb:36:in `build_url'
      lib/gitlab/markdown/upload_link_filter.rb:31:in `process_link_attr'
      lib/gitlab/markdown/upload_link_filter.rb:18:in `block in call'
      lib/gitlab/markdown/upload_link_filter.rb:17:in `call'
      lib/gitlab/markdown.rb:127:in `gfm'
      lib/gitlab/markdown.rb:24:in `render'
      app/helpers/gitlab_markdown_helper.rb:61:in `markdown'
      app/views/search/results/_issue.html.haml:9:in `block in _app_views_search_results__issue_html_haml__4127460390996300432_59973760'
      app/views/search/results/_issue.html.haml:8:in `_app_views_search_results__issue_html_haml__4127460390996300432_59973760'
      app/views/search/_results.html.haml:20:in `_app_views_search__results_html_haml__589475855773452465_61761440'
      app/views/search/show.html.haml:5:in `_app_views_search_show_html_haml___1852335078065998536_69780120'
    ```
    
    Confirmed this is issue still happens in GitLab 8.4, and it also happens on GitLab.com. Here's how to reproduce:
    
    1. Login in a new browser.
    2. Enter a search term on the top right that will land a hit in the "Issues" (e.g. GitLab).
    3. Click on "Issues" tab. You should get an Error 500.
    
    The issue is that @project isn't assigned to anything.
    
    See merge request !2110
    c75ac821
To find the state of this project's repository at the time of any of these versions, check out the tags.