500 error when redirecting when deleting a project that has a pipeline and was created from a template
Summary
Customer is seeing 500
errors when deleting a project. Refreshing the page will lead to a 404
or we're redirected towards a dashboard where the blue pop-up "Project path/is/here is in the process of being deleted" is displayed. Reported on GitLab v12.1.3-ee, v12.1.6-ee.
Steps to reproduce
On their instance we can reproduce consistently:
- Create a new project from a project template
- Run the pipeline. This issue doesn't happen if there isn't a pipeline.
- Delete the project
What is the current bug behavior?
We immediately get a 500 error:
Completed 500 Internal Server Error in 2082ms (ActiveRecord: 12.3ms | Elasticsearch: 0.0ms)
ActionView::Template::Error (undefined method `access_level' for nil:NilClass):
84: title: _('Issues'), data: { container: 'body', placement: 'top' } do
85: = sprite_icon('issues', size: 14, css_class: 'append-right-4')
86: = number_with_delimiter(project.open_issues_count)
87: - if pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status? && can?(current_user, :read_build, project)
88: - pipeline_path = pipelines_project_commit_path(project.pipeline_status.project, project.pipeline_status.sha, ref: project.pipeline_status.ref)
ustomer is seeing `500` errors when deleting a project. Refreshing the page will lead to a `404` or we're redirected towards a dashboard where the blue pop-up "Project path/is/here is in the process of being deleted" is displayed.
Relevant logs and/or screenshots
==> /var/log/gitlab/gitlab-rails/production.log <==
Started DELETE "/group/test-something-500" for 10.45.120.178 at 2019-08-20 22:14:20 +0000
Processing by ProjectsController#destroy as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "namespace_id"=>"group", "id"=>"test-something-500"}
User 379 scheduled destruction of project group/test-something-500 with job ID ca14d76968c53c502588e0fa
Redirected to https://gitlab.domain.com/dashboard/projects
Completed 302 Found in 77ms (ActiveRecord: 23.9ms | Elasticsearch: 0.0ms)
Started GET "/dashboard/projects" for 10.45.120.178 at 2019-08-20 22:14:20 +0000
Processing by Dashboard::ProjectsController#index as HTML
==> /var/log/gitlab/sidekiq/current <==
{"severity":"INFO","time":"2019-08-20T22:14:21.522Z","class":"ProjectDestroyWorker","args":[10764,379,{}],"retry":3,"queue":"project_destroy","backtrace":5,"jid":"ca14d76968c53c502588e0fa","created_at":"2019-08-20T22:14:20.237Z","correlation_id":"MhcDiuWuKk9","enqueued_at":"2019-08-20T22:14:20.242Z","pid":428,"message":"ProjectDestroyWorker JID-ca14d76968c53c502588e0fa: done: 1.276 sec","job_status":"done","duration":1.276,"completed_at":"2019-08-20T22:14:21.522Z"}
==> /var/log/gitlab/gitlab-workhorse/current <==
{"correlation_id":"TuVG72qFpF7","duration":0.000874018,"host":"gitlab.domain.com","level":"info","method":"POST","msg":"access","proto":"HTTP/1.1","referer":"","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":204,"system":"http","time":"2019-08-20T22:14:20Z","uri":"/api/v4/jobs/request","userAgent":"gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)","written":0}
{"correlation_id":"tmhYTGjZRv6","duration":0.000861071,"host":"gitlab.domain.com","level":"info","method":"POST","msg":"access","proto":"HTTP/1.1","referer":"","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":204,"system":"http","time":"2019-08-20T22:14:21Z","uri":"/api/v4/jobs/request","userAgent":"gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)","written":0}
==> /var/log/gitlab/registry/current <==
2019-08-20_22:14:20.97921 time="2019-08-20T22:14:20.979173022Z" level=debug msg="authorizing request" go.version=go1.11.10 http.request.host="localhost:5000" http.request.id=ac23ee3d-429b-4bef-861f-1aad590e8891 http.request.method=GET http.request.remoteaddr="127.0.0.1:37130" http.request.uri="/v2/group/test-something-500/tags/list" http.request.useragent="Faraday v0.12.2" vars.name="group/test-something-500"
2019-08-20_22:14:20.97950 time="2019-08-20T22:14:20.97948746Z" level=info msg="authorized request" go.version=go1.11.10 http.request.host="localhost:5000" http.request.id=ac23ee3d-429b-4bef-861f-1aad590e8891 http.request.method=GET http.request.remoteaddr="127.0.0.1:37130" http.request.uri="/v2/group/test-something-500/tags/list" http.request.useragent="Faraday v0.12.2" vars.name="group/test-something-500"
2019-08-20_22:14:21.03929 time="2019-08-20T22:14:21.039242222Z" level=debug msg="s3aws.List("/docker/registry/v2/repositories/group/test-something-500/_manifests/tags")" auth.user.name= go.version=go1.11.10 http.request.host="localhost:5000" http.request.id=ac23ee3d-429b-4bef-861f-1aad590e8891 http.request.method=GET http.request.remoteaddr="127.0.0.1:37130" http.request.uri="/v2/group/test-something-500/tags/list" http.request.useragent="Faraday v0.12.2" trace.duration=59.679289ms trace.file="/var/cache/omnibus/src/registry/src/github.com/docker/distribution/registry/storage/driver/base/base.go" trace.func="github.com/docker/distribution/registry/storage/driver/base.(*Base).List" trace.id=0b98e8e1-a750-4310-bf99-3b1d7a1cc845 trace.line=170 vars.name="group/test-something-500"
2019-08-20_22:14:21.03936 time="2019-08-20T22:14:21.039335543Z" level=error msg="response completed with error" auth.user.name= err.code="name unknown" err.detail=map[name:group/test-something-500] err.message="repository name not known to registry" go.version=go1.11.10 http.request.host="localhost:5000" http.request.id=ac23ee3d-429b-4bef-861f-1aad590e8891 http.request.method=GET http.request.remoteaddr="127.0.0.1:37130" http.request.uri="/v2/group/test-something-500/tags/list" http.request.useragent="Faraday v0.12.2" http.response.contenttype="application/json; charset=utf-8" http.response.duration=62.391722ms http.response.status=404 http.response.written=138 vars.name="group/test-something-500"
2019-08-20_22:14:21.03937 127.0.0.1 - - [20/Aug/2019:22:14:20 +0000] "GET /v2/group/test-something-500/tags/list HTTP/1.1" 404 138 "" "Faraday v0.12.2"
==> /var/log/gitlab/gitaly/current <==
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"HasLocalBranches","grpc.request.deadline":"2019-08-20T22:15:00Z","grpc.request.fullMethod":"/gitaly.RepositoryService/HasLocalBranches","grpc.request.glProjectPath":"group/test-something-500","grpc.request.glRepository":"project-10764","grpc.request.repoPath":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2019-08-20T22:14:20Z","grpc.time_ms":52.471,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:20Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"NamespaceExists","grpc.request.Name":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.StorageName":"default","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/NamespaceExists","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":0.738,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"NamespaceExists","grpc.request.Name":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.StorageName":"default","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/NamespaceExists","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":0.043,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"RenameNamespace","grpc.request.From":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.StorageName":"default","grpc.request.To":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af+10764+deleted.git","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/RenameNamespace","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":3.567,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"NamespaceExists","grpc.request.Name":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki.git","grpc.request.StorageName":"default","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/NamespaceExists","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":1.089,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"NamespaceExists","grpc.request.Name":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki.git","grpc.request.StorageName":"default","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/NamespaceExists","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":0.035,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"MhcDiuWuKk9","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-sidekiq","grpc.method":"RenameNamespace","grpc.request.From":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki.git","grpc.request.StorageName":"default","grpc.request.To":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki+10764+deleted.git","grpc.request.deadline":"2019-08-20T22:15:01Z","grpc.request.fullMethod":"/gitaly.NamespaceService/RenameNamespace","grpc.service":"gitaly.NamespaceService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":3.852,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
==> /var/log/gitlab/nginx/gitlab_access.log <==
10.7.7.38 - - [20/Aug/2019:22:14:20 +0000] "POST /api/v4/jobs/request HTTP/1.1" 204 0 "" "gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)"
10.7.7.21 - - [20/Aug/2019:22:14:21 +0000] "POST /api/v4/jobs/request HTTP/1.1" 204 0 "" "gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)"
==> /var/log/gitlab/gitlab-rails/application.log <==
August 20, 2019 22:14: Attempting to destroy group/test-something-500 (10764)
August 20, 2019 22:14: Repository "@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af" moved to "@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af+10764+deleted" for project "group/test-something-500"
August 20, 2019 22:14: Repository "@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki" moved to "@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.wiki+10764+deleted" for project "group/test-something-500"
August 20, 2019 22:14: Project "group/test-something-500" was removed
==> /var/log/gitlab/gitlab-rails/sidekiq.log <==
{"severity":"INFO","time":"2019-08-20T22:14:21.522Z","class":"ProjectDestroyWorker","args":[10764,379,{}],"retry":3,"queue":"project_destroy","backtrace":5,"jid":"ca14d76968c53c502588e0fa","created_at":"2019-08-20T22:14:20.237Z","correlation_id":"MhcDiuWuKk9","enqueued_at":"2019-08-20T22:14:20.242Z","pid":428,"message":"ProjectDestroyWorker JID-ca14d76968c53c502588e0fa: done: 1.276 sec","job_status":"done","duration":1.276,"completed_at":"2019-08-20T22:14:21.522Z"}
==> /var/log/gitlab/gitlab-rails/production.log <==
Scoped order is ignored, it's forced to be batch order.
==> /var/log/gitlab/gitlab-rails/audit_json.log <==
{"severity":"INFO","time":"2019-08-20T22:14:21.047Z","correlation_id":"MhcDiuWuKk9","author_id":379,"entity_id":10764,"entity_type":"Project","remove":"project","author_name":"redacted","target_id":"group/test-something-500","target_type":"Project","target_details":"group/test-something-500","ip_address":"redacted","entity_path":"group/test-something-500"}
==> /var/log/gitlab/gitlab-workhorse/current <==
{"correlation_id":"rc7oM6b86z4","duration":0.000948378,"host":"gitlab.domain.com","level":"info","method":"POST","msg":"access","proto":"HTTP/1.1","referer":"","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":204,"system":"http","time":"2019-08-20T22:14:22Z","uri":"/api/v4/jobs/request","userAgent":"gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)","written":0}
{"correlation_id":"QGAf3nXvLG","duration":0.000906008,"host":"gitlab.domain.com","level":"info","method":"POST","msg":"access","proto":"HTTP/1.1","referer":"","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":204,"system":"http","time":"2019-08-20T22:14:22Z","uri":"/api/v4/jobs/request","userAgent":"gitlab-runner 11.8.0 (11-8-stable; go1.8.7; windows/amd64)","written":0}
{"correlation_id":"BAwh20L9t37","duration":2.106353062,"host":"gitlab.domain.com","level":"info","method":"GET","msg":"access","proto":"HTTP/1.1","referer":"https://gitlab.domain.com/group/test-something-500/edit","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":500,"system":"http","time":"2019-08-20T22:14:22Z","uri":"/dashboard/projects","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0","written":2926}
{"correlation_id":"t5Ll5oZ21K3","duration":0.000848658,"host":"gitlab.domain.com","level":"info","method":"POST","msg":"access","proto":"HTTP/1.1","referer":"","remoteAddr":"127.0.0.1:0","remoteIp":"127.0.0.1","status":204,"system":"http","time":"2019-08-20T22:14:22Z","uri":"/api/v4/jobs/request","userAgent":"gitlab-runner 11.8.0 (11-8-stable; go1.8.7; windows/amd64)","written":0}
==> /var/log/gitlab/gitaly/current <==
{"correlation_id":"BAwh20L9t37","grpc.code":"OK","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.method":"RepositoryExists","grpc.request.deadline":"2019-08-20T22:15:02Z","grpc.request.fullMethod":"/gitaly.RepositoryService/RepositoryExists","grpc.request.glProjectPath":"group/dockertest1","grpc.request.glRepository":"project-10693","grpc.request.repoPath":"@hashed/5d/a3/5da3cb5ea15a9ae6f42bf7b98022c817dc374bbe33ff84f138d0fe9ae8f66ecc.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RepositoryService","grpc.start_time":"2019-08-20T22:14:21Z","grpc.time_ms":3.679,"level":"info","msg":"finished unary call with code OK","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:21Z"}
{"correlation_id":"BAwh20L9t37","error":"rpc error: code = NotFound desc = GetRepoPath: not a git repository '/gitlab-data/git-data/repositories/@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git'","grpc.code":"NotFound","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.method":"FindDefaultBranchName","grpc.request.deadline":"2019-08-20T22:15:02Z","grpc.request.fullMethod":"/gitaly.RefService/FindDefaultBranchName","grpc.request.glProjectPath":"group/test-something-500","grpc.request.glRepository":"project-10764","grpc.request.repoPath":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RefService","grpc.start_time":"2019-08-20T22:14:22Z","grpc.time_ms":1.227,"level":"info","msg":"finished unary call with code NotFound","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:22Z"}
{"correlation_id":"BAwh20L9t37","error":"rpc error: code = NotFound desc = GetRepoPath: not a git repository '/gitlab-data/git-data/repositories/@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git'","grpc.code":"NotFound","grpc.meta.auth_version":"v2","grpc.meta.client_name":"gitlab-web","grpc.method":"FindDefaultBranchName","grpc.request.deadline":"2019-08-20T22:15:02Z","grpc.request.fullMethod":"/gitaly.RefService/FindDefaultBranchName","grpc.request.glProjectPath":"group/test-something-500","grpc.request.glRepository":"project-10764","grpc.request.repoPath":"@hashed/90/1e/901eb9ea2901da02942ec61bed46a385286c68e36a36135823b37dcf8a89d4af.git","grpc.request.repoStorage":"default","grpc.request.topLevelGroup":"@hashed","grpc.service":"gitaly.RefService","grpc.start_time":"2019-08-20T22:14:22Z","grpc.time_ms":0.65,"level":"info","msg":"finished unary call with code NotFound","peer.address":"@","span.kind":"server","system":"grpc","time":"2019-08-20T22:14:22Z"}
==> /var/log/gitlab/nginx/gitlab_access.log <==
10.7.7.38 - - [20/Aug/2019:22:14:22 +0000] "POST /api/v4/jobs/request HTTP/1.1" 204 0 "" "gitlab-runner 12.0.1 (; go1.8.7; linux/amd64)"
10.7.7.21 - - [20/Aug/2019:22:14:22 +0000] "POST /api/v4/jobs/request HTTP/1.1" 204 0 "" "gitlab-runner 11.8.0 (11-8-stable; go1.8.7; windows/amd64)"
10.7.7.61 - - [20/Aug/2019:22:14:22 +0000] "GET /dashboard/projects HTTP/1.1" 500 2926 "https://gitlab.domain.com/group/test-something-500/edit" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0"
10.7.7.61 - - [20/Aug/2019:22:14:22 +0000] "POST /api/v4/jobs/request HTTP/1.1" 204 0 "" "gitlab-runner 11.8.0 (11-8-stable; go1.8.7; windows/amd64)"
==> /var/log/gitlab/gitlab-rails/production_json.log <==
{"method":"GET","path":"/dashboard/projects","format":"html","controller":"Dashboard::ProjectsController","action":"index","status":500,"error":"ActionView::Template::Error: undefined method `access_level' for nil:NilClass","duration":2082.33,"view":0.0,"db":12.29,"time":"2019-08-20T22:14:22.519Z","params":[],"remote_ip":"redacted","user_id":379,"username":"redacted","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0","queue_duration":12.08,"gitaly_calls":3,"gitaly_duration":18.74,"correlation_id":"BAwh20L9t37"}
==> /var/log/gitlab/gitlab-rails/production.log <==
Completed 500 Internal Server Error in 2082ms (ActiveRecord: 12.3ms | Elasticsearch: 0.0ms)
ActionView::Template::Error (undefined method `access_level' for nil:NilClass):
84: title: _('Issues'), data: { container: 'body', placement: 'top' } do
85: = sprite_icon('issues', size: 14, css_class: 'append-right-4')
86: = number_with_delimiter(project.open_issues_count)
87: - if pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status? && can?(current_user, :read_build, project)
88: - pipeline_path = pipelines_project_commit_path(project.pipeline_status.project, project.pipeline_status.sha, ref: project.pipeline_status.ref)
89: %span.icon-wrapper.pipeline-status
90: = render 'ci/status/icon', status: project.commit.last_pipeline.detailed_status(current_user), type: 'commit', tooltip_placement: 'top', path: pipeline_path
app/policies/project_policy.rb:504:in `feature_available?'
app/policies/project_policy.rb:133:in `block (2 levels) in <class:ProjectPolicy>'
lib/declarative_policy/condition.rb:23:in `instance_eval'
lib/declarative_policy/condition.rb:23:in `compute'
lib/declarative_policy/condition.rb:44:in `block in pass?'
lib/declarative_policy/base.rb:282:in `cache'
lib/declarative_policy/condition.rb:44:in `pass?'
lib/declarative_policy/rule.rb:81:in `pass?'
lib/declarative_policy/step.rb:81:in `pass?'
lib/declarative_policy/runner.rb:100:in `block in run'
lib/declarative_policy/runner.rb:179:in `block in steps_by_score'
lib/declarative_policy/runner.rb:148:in `loop'
lib/declarative_policy/runner.rb:148:in `steps_by_score'
lib/declarative_policy/runner.rb:81:in `run'
lib/declarative_policy/runner.rb:59:in `pass?'
lib/declarative_policy/base.rb:217:in `block in allowed?'
lib/declarative_policy/base.rb:217:in `all?'
lib/declarative_policy/base.rb:217:in `allowed?'
lib/declarative_policy/base.rb:209:in `can?'
app/models/ability.rb:72:in `allowed?'
lib/gitlab/metrics/instrumentation.rb:161:in `block in allowed?'
lib/gitlab/metrics/method_call.rb:36:in `measure'
lib/gitlab/metrics/instrumentation.rb:161:in `allowed?'
app/controllers/application_controller.rb:178:in `can?'
app/views/shared/projects/_project.html.haml:87:in `block in _app_views_shared_projects__project_html_haml__812372171892654102_70205752616660'
app/views/shared/projects/_project.html.haml:19:in `_app_views_shared_projects__project_html_haml__812372171892654102_70205752616660'
app/views/shared/projects/_list.html.haml:35:in `block in _app_views_shared_projects__list_html_haml___2249394819766586861_70205670449300'
app/views/shared/projects/_list.html.haml:33:in `each_with_index'
app/views/shared/projects/_list.html.haml:33:in `_app_views_shared_projects__list_html_haml___2249394819766586861_70205670449300'
app/views/dashboard/projects/_projects.html.haml:1:in `_app_views_dashboard_projects__projects_html_haml__3623692554147482610_70205670376820'
app/views/dashboard/projects/index.html.haml:17:in `_app_views_dashboard_projects_index_html_haml__2164129648008702964_70205740732780'
app/controllers/application_controller.rb:117:in `render'
app/controllers/dashboard/projects_controller.rb:58:in `block in render_projects'
lib/gitlab/gitaly_client.rb:284:in `allow_n_plus_1_calls'
app/controllers/dashboard/projects_controller.rb:57:in `render_projects'
ee/app/controllers/ee/dashboard/projects_controller.rb:16:in `render_projects'
app/controllers/dashboard/projects_controller.rb:17:in `block (2 levels) in index'
app/controllers/dashboard/projects_controller.rb:15:in `index'
ee/lib/gitlab/ip_address_state.rb:10:in `with'
ee/app/controllers/ee/application_controller.rb:28:in `set_current_ip_address'
lib/gitlab/session.rb:11:in `with_session'
app/controllers/application_controller.rb:445:in `set_session_storage'
lib/gitlab/i18n.rb:55:in `with_locale'
lib/gitlab/i18n.rb:61:in `with_user_locale'
app/controllers/application_controller.rb:439:in `set_locale'
lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
lib/gitlab/metrics/transaction.rb:57:in `run'
lib/gitlab/metrics/rack_middleware.rb:17:in `call'
lib/gitlab/middleware/multipart.rb:103:in `call'
lib/gitlab/request_profiler/middleware.rb:16:in `call'
ee/lib/gitlab/jira/middleware.rb:17:in `call'
lib/gitlab/middleware/go.rb:20:in `call'
lib/gitlab/etag_caching/middleware.rb:13:in `call'
lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
lib/gitlab/middleware/correlation_id.rb:15:in `call'
lib/gitlab/middleware/read_only/controller.rb:42:in `call'
lib/gitlab/middleware/read_only.rb:18:in `call'
lib/gitlab/middleware/basic_health_check.rb:25:in `call'
lib/gitlab/request_context.rb:26:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:29:in `call'
lib/gitlab/middleware/release_env.rb:12:in `call'
https://gitlab.zendesk.com/agent/tickets/128754 (for internal use)
Edited by Cindy Pallares 🦉