Skip to content

query groupVulnerabilities timeout

Summary

Originally reported in #327607 (comment 1127071976).

GraphQL query used: ee/app/assets/javascripts/security_dashboard/graphql/queries/group_vulnerabilities.query.graphql

Resulting SQL

/*application:web,correlation_id:6d7184ede540186fd9d5c1459a55e892,endpoint_id:GraphqlController#execute,db_config_name:main_replica*/ 

SELECT "vulnerability_reads".* 
FROM unnest(ARRAY(
    SELECT "namespaces"."id" 
    FROM "namespaces" 
    WHERE "namespaces"."type" = $1 
      AND (traversal_ids @> ($2)))::bigint[]) 
  AS "namespace_ids"("namespace_id"), 
unnest($3::smallint[]) AS "report_types"("report_type"), 
unnest($4::smallint[]) AS "states"("state"), 
LATERAL (SELECT "vulnerability_reads".* 
  FROM "vulnerability_reads" 
  WHERE (vulnerability_reads."namespace_id" = "namespace_ids"."namespace_id") 
    AND (vulnerability_reads."report_type" = "report_types"."report_type") 
    AND (vulnerability_reads."state" = "states"."state") 
  ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT $5) 
AS vulnerability_reads ORDER BY "vulnerability_reads"."severity" DESC, "vulnerability_reads"."vulnerability_id" DESC LIMIT $6

Backtrace

lib/gitlab/database/load_balancing/connection_proxy.rb:104:in `block in read_using_load_balancer'
 lib/gitlab/database/load_balancing/load_balancer.rb:55:in `read'
 lib/gitlab/database/load_balancing/connection_proxy.rb:103:in `read_using_load_balancer'
 lib/gitlab/database/load_balancing/connection_proxy.rb:48:in `select_all'
 lib/unnested_in_filters/dsl.rb:62:in `load'
 lib/unnested_in_filters/dsl.rb:64:in `load'
 ee/app/models/vulnerabilities/read.rb:54:in `block (3 levels) in <class:Read>'
 lib/gitlab/graphql/pagination/keyset/connection.rb:135:in `block in limited_nodes'
 lib/gitlab/utils/strong_memoize.rb:44:in `strong_memoize'
 lib/gitlab/graphql/pagination/keyset/connection.rb:117:in `limited_nodes'
 lib/gitlab/graphql/pagination/keyset/connection.rb:96:in `nodes'
 lib/gitlab/graphql/connection_redaction.rb:23:in `block in nodes'
 lib/gitlab/graphql/connection_redaction.rb:16:in `redacted'
 lib/gitlab/graphql/connection_redaction.rb:23:in `nodes'
 lib/gitlab/graphql/tracers/timer_tracer.rb:20:in `trace'
 lib/gitlab/graphql/generic_tracing.rb:48:in `with_labkit_tracing'
 lib/gitlab/graphql/generic_tracing.rb:38:in `platform_trace'
 lib/gitlab/graphql/tracers/logger_tracer.rb:14:in `trace'
 lib/gitlab/graphql/tracers/metrics_tracer.rb:13:in `trace'
 lib/gitlab/graphql/tracers/application_context_tracer.rb:23:in `trace'
 lib/gitlab/graphql/tracers/timer_tracer.rb:20:in `trace'
 lib/gitlab/graphql/generic_tracing.rb:48:in `with_labkit_tracing'
 lib/gitlab/graphql/generic_tracing.rb:38:in `platform_trace'
 lib/gitlab/graphql/tracers/logger_tracer.rb:14:in `trace'
 lib/gitlab/graphql/tracers/metrics_tracer.rb:13:in `trace'
 lib/gitlab/graphql/tracers/application_context_tracer.rb:23:in `trace'
 lib/gitlab/graphql/tracers/timer_tracer.rb:20:in `trace'
 lib/gitlab/graphql/generic_tracing.rb:48:in `with_labkit_tracing'
 lib/gitlab/graphql/generic_tracing.rb:38:in `platform_trace'
 lib/gitlab/graphql/tracers/logger_tracer.rb:14:in `trace'
 lib/gitlab/graphql/tracers/metrics_tracer.rb:13:in `trace'
 lib/gitlab/graphql/tracers/application_context_tracer.rb:23:in `trace'
 app/graphql/gitlab_schema.rb:51:in `multiplex'
 app/controllers/graphql_controller.rb:167:in `execute_query'
 app/controllers/graphql_controller.rb:57:in `execute'
 ee/lib/gitlab/ip_address_state.rb:10:in `with'
 ee/app/controllers/ee/application_controller.rb:45:in `set_current_ip_address'
 app/controllers/application_controller.rb:531:in `set_current_admin'
 lib/gitlab/session.rb:11:in `with_session'
 app/controllers/application_controller.rb:522:in `set_session_storage'
 lib/gitlab/i18n.rb:107:in `with_locale'
 lib/gitlab/i18n.rb:113:in `with_user_locale'
 app/controllers/application_controller.rb:516:in `set_locale'
 app/controllers/application_controller.rb:510:in `set_current_context'
 ee/lib/omni_auth/strategies/group_saml.rb:41:in `other_phase'
 lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'
 lib/gitlab/middleware/memory_report.rb:13:in `call'
 lib/gitlab/middleware/speedscope.rb:13:in `call'
 lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'
 lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'
 lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'
 lib/gitlab/metrics/web_transaction.rb:46:in `run'
 lib/gitlab/metrics/rack_middleware.rb:16:in `call'
 lib/gitlab/jira/middleware.rb:19:in `call'
 lib/gitlab/middleware/go.rb:20:in `call'
 lib/gitlab/etag_caching/middleware.rb:21:in `call'
 lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'
 lib/gitlab/database/query_analyzer.rb:37:in `within'
 lib/gitlab/middleware/query_analyzer.rb:11:in `call'
 lib/gitlab/middleware/multipart.rb:173:in `call'
 lib/gitlab/middleware/read_only/controller.rb:50:in `call'
 lib/gitlab/middleware/read_only.rb:18:in `call'
 lib/gitlab/middleware/same_site_cookies.rb:27:in `call'
 lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
 lib/gitlab/middleware/basic_health_check.rb:25:in `call'
 lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
 lib/gitlab/middleware/request_context.rb:21:in `call'
 lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'
 config/initializers/fix_local_cache_middleware.rb:11:in `call'
 lib/gitlab/middleware/compressed_json.rb:26:in `call'
 lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'
 lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'
 lib/gitlab/metrics/requests_rack_middleware.rb:77:in `call'
 lib/gitlab/middleware/release_env.rb:13:in `call'

Steps to reproduce

Example Project

What is the current bug behavior?

What is the expected correct behavior?

Relevant logs and/or screenshots

Output of checks

Results of GitLab environment info

Expand for output related to GitLab environment info

(For installations with omnibus-gitlab package run and paste the output of:
`sudo gitlab-rake gitlab:env:info`)

(For installations from source run and paste the output of:
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)

Results of GitLab application Check

Expand for output related to the GitLab application check

(For installations with omnibus-gitlab package run and paste the output of: sudo gitlab-rake gitlab:check SANITIZE=true)

(For installations from source run and paste the output of: sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true)

(we will only investigate if the tests are passing)

Possible fixes

Edited by Thiago Figueiró