Searching for projects in nav dropdown causes 500
Summary
When searching for projects in the main nav dropdown, the server responds with 500.
Environment
Reproduced locally with latest from master
Steps to reproduce
- Create over 20 projects that match a certain search term (i.e. 'foo-1', 'foo-2', etc.)
- Search for the projects in the main nav project dropdown (i.e. 'foo').
- In the "Network" tab, you'll see the server responds with 500.
What is the current bug behavior?
- The server errors out.
What is the expected correct behavior?
(What you should see instead)
Relevant logs and/or screenshots
Here's the screenshot of how to reproduce:
Here's the console log from the server:
11:12:40 rails-web.1 | caught error of type Gitlab::GitalyClient::TooManyInvocationsError in after callback inside Grape::Middleware::Formatter : GitalyClient#call called 36 times from single request. Potential n+1?
11:12:40 rails-web.1 | The following call site called into Gitaly 12 times:
11:12:40 rails-web.1 | lib/gitlab/gitaly_client.rb:129:in `call'
11:12:40 rails-web.1 | lib/gitlab/gitaly_client/ref_service.rb:40:in `default_branch_name'
11:12:40 rails-web.1 | lib/gitlab/git/repository.rb:120:in `root_ref'
11:12:40 rails-web.1 | app/models/repository.rb:488:in `root_ref'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:17:in `block (2 levels) in cache_method'
11:12:40 rails-web.1 | lib/gitlab/repository_cache.rb:22:in `fetch'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:59:in `cache_method_output'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:16:in `block in cache_method'
11:12:40 rails-web.1 | app/models/project.rb:1304:in `default_branch'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/transaction.rb:37:in `run'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:16:in `call'
11:12:40 rails-web.1 | lib/gitlab/webpack/dev_server_middleware.rb:25:in `perform_request'\nlib/gitlab/gitaly_client.rb:129:in `call'
11:12:40 rails-web.1 | lib/gitlab/gitaly_client/ref_service.rb:40:in `default_branch_name'
11:12:40 rails-web.1 | lib/gitlab/git/repository.rb:120:in `root_ref'
11:12:40 rails-web.1 | app/models/repository.rb:488:in `root_ref'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:17:in `block (2 levels) in cache_method'
11:12:40 rails-web.1 | lib/gitlab/repository_cache.rb:22:in `fetch'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:59:in `cache_method_output'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:16:in `block in cache_method'
11:12:40 rails-web.1 | app/models/repository.rb:618:in `head_commit'
11:12:40 rails-web.1 | app/models/repository.rb:629:in `tree'
11:12:40 rails-web.1 | app/models/repository.rb:558:in `readme'
11:12:40 gitlab-workhorse.1 | localhost:3000 127.0.0.1:49933 - - [2018/07/30:11:12:40 -0500] "GET /api/v4/projects.json?search=foo&per_page=20&simple=true&membership=true&order_by=last_activity_at HTTP/1.1" 500 39 "http://localhost:3000/dashboard/projects" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0" 0.569
11:12:40 rails-web.1 | app/models/project.rb:920:in `readme_url'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/transaction.rb:37:in `run'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:16:in `call'
11:12:40 rails-web.1 | lib/gitlab/webpack/dev_server_middleware.rb:25:in `perform_request'\nlib/gitlab/gitaly_client.rb:129:in `call'
11:12:40 rails-web.1 | lib/gitlab/gitaly_client/ref_service.rb:40:in `default_branch_name'
11:12:40 rails-web.1 | lib/gitlab/git/repository.rb:120:in `root_ref'
11:12:40 rails-web.1 | app/models/repository.rb:488:in `root_ref'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:17:in `block (2 levels) in cache_method'
11:12:40 rails-web.1 | lib/gitlab/repository_cache.rb:22:in `fetch'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:59:in `cache_method_output'
11:12:40 rails-web.1 | lib/gitlab/repository_cache_adapter.rb:16:in `block in cache_method'
11:12:40 rails-web.1 | app/models/repository.rb:106:in `commit'
11:12:40 rails-web.1 | app/models/repository.rb:618:in `head_commit'
11:12:40 rails-web.1 | app/models/repository.rb:629:in `tree'
11:12:40 rails-web.1 | app/models/repository.rb:558:in `readme'
11:12:40 rails-web.1 | app/models/project.rb:920:in `readme_url'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/transaction.rb:37:in `run'
11:12:40 rails-web.1 | lib/gitlab/query_limiting/middleware.rb:16:in `call'
11:12:40 rails-web.1 | lib/gitlab/webpack/dev_server_middleware.rb:25:in `perform_request'