Instance security dashboard vulnerability findings list times out
On gitlab.com, one of the pagination queries for the vulnerability findings list on the instance security dashboard times out. This does not occur on staging.gitlab.com.
Sentry: https://sentry.gitlab.net/gitlab/gitlabcom/issues/1176723/
PG::QueryCanceled: ERROR: canceling statement due to statement timeout
active_record/connection_adapters/postgresql_adapter.rb:611:in `async_exec_params'
@connection.exec_params(sql, type_casted_binds)
active_record/connection_adapters/postgresql_adapter.rb:611:in `block (2 levels) in exec_no_cache'
@connection.exec_params(sql, type_casted_binds)
active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
yield
active_support/concurrency/share_lock.rb:187:in `yield_shares'
yield
active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
@lock.yield_shares(compatible: [:load]) do
...
(161 additional frame(s) were not displayed)
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
: SELECT COUNT(*) FROM (SELECT 1 AS one FROM "vulnerability_occurrences" INNER JOIN "vulnerability_occurrence_pipelines" ON "vulnerability_occurrence_pipelines"."occurrence_id" = "vulnerability_occurrences"."id" INNER JOIN "ci_pipelines" ON "ci_pipelines"."id" = "vulnerability_occurrence_pipelines"."pipeline_id" WHERE "ci_pipelines"."id" IN (SELECT max(id) as id FROM "ci_pipelines" WHERE (EXISTS (SELECT 1 FROM "vulnerability_occurrence_pipelines" WHERE (ci_pipelines.id=vulnerability_occurrence_pipelines.pipeline_id))) AND ("ci_pipelines"."status" IN ('success')) GROUP BY "ci_pipelines"."project_id") AND "vulnerability_occurrences"."project_id" IN (12022021, 12022036, 12022372, 11999364) AND (NOT EXISTS (SELECT 1 FROM "vulnerability_feedback" WHERE (vulnerability_occurrences.report_type = vulnerability_feedback.category) AND (vulnerability_occurrences.project_id = vulnerability_feedback.project_id) AND (ENCODE(vulnerability_occurrences.project_fingerprint, 'HEX') = vulnerability_feedback.project_fingerprint) AND "vulnerability_feedback"."feedback_type" = 0)) LIMIT 10001) subquery_for_count
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
: SELECT COUNT(*) FROM (SELECT 1 AS one FROM "vulnerability_occurrences" INNER JOIN "vulnerability_occurrence_pipelines" ON "vulnerability_occurrence_pipelines"."occurrence_id" = "vulnerability_occurrences"."id" INNER JOIN "ci_pipelines" ON "ci_pipelines"."id" = "vulnerability_occurrence_pipelines"."pipeline_id" WHERE "ci_pipelines"."id" IN (SELECT max(id) as id FROM "ci_pipelines" WHERE (EXISTS (SELECT 1 FROM "vulnerability_occurrence_pipelines" WHERE (ci_pipelines.id=vulnerability_occurrence_pipelines.pipeline_id))) AND ("ci_pipelines"."status" IN ('success')) GROUP BY "ci_pipelines"."project_id") AND "vulnerability_occurrences"."project_id" IN (12022021, 12022036, 12022372, 11999364) AND (NOT EXISTS (SELECT 1 FROM "vulnerability_feedback" WHERE (vulnerability_occurrences.report_type = vulnerability_feedback.category) AND (vulnerability_occurrences.project_id = vulnerability_feedback.project_id) AND (ENCODE(vulnerability_occurrences.project_fingerprint, 'HEX') = vulnerability_feedback.project_fingerprint) AND "vulnerability_feedback"."feedback_type" = 0)) LIMIT 10001) subquery_for_count
Edited by Avielle Wolfe