Skip to content

Add 80 min rspec duration limit

Jennifer Li requested to merge jennli-set-rspec-suite-time-limit into master

What does this MR do and why?

Give RSpec suite an 80 min time limit as discussed in gitlab-org/quality/engineering-productivity/team#323 (comment 1689613138).

This replaces job timeouts with actual RSpec failures, and hopefully can give the job a chance to upload artifacts.

Example

latest: https://gitlab.com/gitlab-org/gitlab/-/jobs/5738247843 (tested with 20 min timeout)

Click to expand job trace showing the limit being hit
# [RSpecRunTime] Starting example group spec/requests/api/graphql/ci/groups_spec.rb. Expected to take 2.28 seconds.
Query.project.pipeline.stages.groups
  returns a array of jobs belonging to a pipeline
  behaves like a working graphql query
    returns a successful response
# [RSpecRunTime] RSpec elapsed time: 19 minutes 59.25 seconds.
# [RSpecRunTime] Finishing example group spec/requests/api/graphql/ci/groups_spec.rb. It took 1.34 seconds. Expected to take 2.28 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/admin/abuse_report_labels/create_spec.rb. Expected to take 2.13 seconds.
Mutations::Admin::AbuseReportLabels::Create
  when the user does not have permission to create a label
    does not create the label
    behaves like a mutation that returns a top-level access error
      is expected to contain exactly "The resource that you are attempting to access does not exist or you don't have permission to perform this action"
  when the user has permission to create a label
    creates the label
    when there are errors
      does not create the label (FAILED - 1)
# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/admin/abuse_report_labels/create_spec.rb. It took 0.75 second. Expected to take 2.13 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb. Expected to take 2.0 seconds.
Setting assignees of an alert
  updates the assignee of the alert (FAILED - 2)
  with operation_mode specified
    updates the assignee of the alert (FAILED - 3)
# [RSpecRunTime] Finishing example group spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb. It took 0.48 second. Expected to take 2.0 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/web_ide_schemas_controller_spec.rb. Expected to take 1.89 seconds.
Projects::WebIdeSchemasController
  GET show
    when branch is invalid
      returns 422 (FAILED - 4)
    when a valid schema exists
      returns the schema (FAILED - 5)
    when an error occurs parsing the schema
      returns 422 with the error (FAILED - 6)
# [RSpecRunTime] Finishing example group spec/controllers/projects/web_ide_schemas_controller_spec.rb. It took 0.54 second. Expected to take 1.89 seconds.
# [RSpecRunTime] Starting example group spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb. Expected to take 1.8 seconds.
Projects::Ci::PrometheusMetrics::HistogramsController
  POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms
    with known histograms
      returns 201 Created (FAILED - 7)
    with unknown histograms
      returns 404 Not Found (FAILED - 8)
# [RSpecRunTime] Finishing example group spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb. It took 0.35 second. Expected to take 1.8 seconds.
# [RSpecRunTime] Starting example group spec/controllers/concerns/redirects_for_missing_path_on_tree_spec.rb. Expected to take 1.66 seconds.
RedirectsForMissingPathOnTree
  #redirect_to_root_path
    redirects to the tree path with a notice (FAILED - 9)
# [RSpecRunTime] Finishing example group spec/controllers/concerns/redirects_for_missing_path_on_tree_spec.rb. It took 0.11 second. Expected to take 1.66 seconds.
# [RSpecRunTime] Starting example group spec/requests/api/graphql/namespace/package_settings_spec.rb. Expected to take 1.62 seconds.
getting namespace package settings in a namespace
  behaves like a working graphql query
    returns a successful response (FAILED - 10)
    matches the JSON schema (FAILED - 11)
# [RSpecRunTime] Finishing example group spec/requests/api/graphql/namespace/package_settings_spec.rb. It took 0.18 second. Expected to take 1.62 seconds.
# [RSpecRunTime] Starting example group spec/controllers/profiles/webauthn_registrations_controller_spec.rb. Expected to take 1.36 seconds.
Profiles::WebauthnRegistrationsController
  #destroy
    redirects to the profile two factor authentication page (FAILED - 12)
    destroys the webauthn registration (FAILED - 13)
    calls the Webauthn::DestroyService (FAILED - 14)
# [RSpecRunTime] Finishing example group spec/controllers/profiles/webauthn_registrations_controller_spec.rb. It took 0.12 second. Expected to take 1.36 seconds.
# [RSpecRunTime] Starting example group spec/controllers/concerns/continue_params_spec.rb. Expected to take 1.29 seconds.
ContinueParams
  returns an empty hash if params are not present (FAILED - 15)
  cleans up any params that are not allowed (FAILED - 16)
  does not allow cross host redirection (FAILED - 17)
  allows redirecting to a path with querystring (FAILED - 18)
# [RSpecRunTime] Finishing example group spec/controllers/concerns/continue_params_spec.rb. It took 0.15 second. Expected to take 1.29 seconds.
# [RSpecRunTime] Starting example group spec/controllers/projects/pipelines_settings_controller_spec.rb. Expected to take 1.19 seconds.
Projects::PipelinesSettingsController
  GET show
    redirects with 302 status code (FAILED - 19)
# [RSpecRunTime] Finishing example group spec/controllers/projects/pipelines_settings_controller_spec.rb. It took 0.41 second. Expected to take 1.19 seconds.
# [RSpecRunTime] Starting example group spec/requests/user_sends_malformed_strings_spec.rb. Expected to take 1.06 seconds.
User sends malformed strings
  raises a 400 error with a null byte (FAILED - 20)
# [RSpecRunTime] Finishing example group spec/requests/user_sends_malformed_strings_spec.rb. It took 0.11 second. Expected to take 1.06 seconds.
auto_explain log contains 1683 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-as-if-foss-12-12.341.main.ndjson.gz
took 27.029010382
auto_explain log contains 1684 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-integration-pg14-as-if-foss-12-12.341.ci.ndjson.gz
took 24.332929393
Pending: (Failures listed here are expected and do not affect your suite's status)
  1) Projects::IssuesController Confidential Issues PUT #update behaves like restricted action when admin mode is disabled returns 404 for admin
     # Temporarily skipped with xit
     # ./spec/controllers/projects/issues_controller_spec.rb:809
  2) Projects::IssuesController Confidential Issues GET #show behaves like restricted action when admin mode is disabled returns 404 for admin
     # Temporarily skipped with xit
     # ./spec/controllers/projects/issues_controller_spec.rb:809
  3) Projects::IssuesController Confidential Issues GET #realtime_changes behaves like restricted action when admin mode is disabled returns 404 for admin
     # Temporarily skipped with xit
     # ./spec/controllers/projects/issues_controller_spec.rb:809
  4) Projects::IssuesController Confidential Issues GET #edit behaves like restricted action when admin mode is disabled returns 404 for admin
     # Temporarily skipped with xit
     # ./spec/controllers/projects/issues_controller_spec.rb:809
  5) Projects::IssuesController Confidential Issues PUT #update behaves like restricted action when admin mode is disabled returns 404 for admin
     # Temporarily skipped with xit
     # ./spec/controllers/projects/issues_controller_spec.rb:809
  6) HealthController GET /-/readiness behaves like Base action controller security headers Cross-Security-Policy when configuring vite when vite enabled during development adds vite csp
     # https://gitlab.com/gitlab-org/gitlab/-/issues/424334
     # ./spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb:59
  7) Sessions behaves like Base action controller security headers Cross-Security-Policy when configuring vite when vite enabled during development adds vite csp
     # https://gitlab.com/gitlab-org/gitlab/-/issues/424334
     # ./spec/support/shared_examples/controllers/base_action_controller_shared_examples.rb:59
Failures:
  1) Mutations::Admin::AbuseReportLabels::Create when the user has permission to create a label when there are errors does not create the label
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
  2) Setting assignees of an alert updates the assignee of the alert
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  3) Setting assignees of an alert with operation_mode specified updates the assignee of the alert
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  4) Projects::WebIdeSchemasController GET show when branch is invalid returns 422
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  5) Projects::WebIdeSchemasController GET show when a valid schema exists returns the schema
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  6) Projects::WebIdeSchemasController GET show when an error occurs parsing the schema returns 422 with the error
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  7) Projects::Ci::PrometheusMetrics::HistogramsController POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms with known histograms returns 201 Created
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  8) Projects::Ci::PrometheusMetrics::HistogramsController POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms with unknown histograms returns 404 Not Found
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  9) RedirectsForMissingPathOnTree#redirect_to_root_path redirects to the tree path with a notice
     Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
       Example is interrupted due to RSpec exceeding time limit of 20 minutes.
     # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
     # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
     # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
     # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
     # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # Timeout::Error:
     #   execution expired
     #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  10) getting namespace package settings in a namespace behaves like a working graphql query returns a successful response
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      Shared Example Group: "a working graphql query" called from ./spec/requests/api/graphql/namespace/package_settings_spec.rb:25
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
  11) getting namespace package settings in a namespace behaves like a working graphql query matches the JSON schema
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      Shared Example Group: "a working graphql query" called from ./spec/requests/api/graphql/namespace/package_settings_spec.rb:25
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  12) Profiles::WebauthnRegistrationsController#destroy redirects to the profile two factor authentication page
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  13) Profiles::WebauthnRegistrationsController#destroy destroys the webauthn registration
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  14) Profiles::WebauthnRegistrationsController#destroy calls the Webauthn::DestroyService
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  15) ContinueParams returns an empty hash if params are not present
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  16) ContinueParams cleans up any params that are not allowed
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  17) ContinueParams does not allow cross host redirection
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  18) ContinueParams allows redirecting to a path with querystring
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  19) Projects::PipelinesSettingsController GET show redirects with 302 status code
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
  20) User sends malformed strings raises a 400 error with a null byte
      Failure/Error: RSpec::Expectations.fail_with(timeout_reached_error_message)
        Example is interrupted due to RSpec exceeding time limit of 20 minutes.
      # ./spec/support/rspec_run_time.rb:118:in `rescue in block (2 levels) in <top (required)>'
      # ./spec/support/rspec_run_time.rb:110:in `block (2 levels) in <top (required)>'
      # ./spec/support/fast_quarantine.rb:22:in `block (2 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <top (required)>'
      # ./spec/support/database/prevent_cross_joins.rb:60:in `with_cross_joins_prevented'
      # ./spec/support/database/prevent_cross_joins.rb:106:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # Timeout::Error:
      #   execution expired
      #   ./spec/spec_helper.rb:420:in `block (3 levels) in <top (required)>'
Finished in 20 minutes 54 seconds (files took 57.35 seconds to load)
3785 examples, 20 failures, 7 pending
Failed examples:
rspec ./spec/requests/api/graphql/mutations/admin/abuse_report_labels/create_spec.rb:43 # Mutations::Admin::AbuseReportLabels::Create when the user has permission to create a label when there are errors does not create the label
rspec ./spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb:38 # Setting assignees of an alert updates the assignee of the alert
rspec ./spec/requests/api/graphql/mutations/alert_management/alerts/set_assignees_spec.rb:58 # Setting assignees of an alert with operation_mode specified updates the assignee of the alert
rspec ./spec/controllers/projects/web_ide_schemas_controller_spec.rb:37 # Projects::WebIdeSchemasController GET show when branch is invalid returns 422
rspec ./spec/controllers/projects/web_ide_schemas_controller_spec.rb:47 # Projects::WebIdeSchemasController GET show when a valid schema exists returns the schema
rspec ./spec/controllers/projects/web_ide_schemas_controller_spec.rb:58 # Projects::WebIdeSchemasController GET show when an error occurs parsing the schema returns 422 with the error
rspec ./spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb:10 # Projects::Ci::PrometheusMetrics::HistogramsController POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms with known histograms returns 201 Created
rspec ./spec/requests/projects/ci/promeheus_metrics/histograms_controller_spec.rb:22 # Projects::Ci::PrometheusMetrics::HistogramsController POST /*namespace_id/:project_id/-/ci/prometheus_metrics/histograms with unknown histograms returns 404 Not Found
rspec ./spec/controllers/concerns/redirects_for_missing_path_on_tree_spec.rb:22 # RedirectsForMissingPathOnTree#redirect_to_root_path redirects to the tree path with a notice
rspec ./spec/requests/api/graphql/namespace/package_settings_spec.rb:25 # getting namespace package settings in a namespace behaves like a working graphql query returns a successful response
rspec ./spec/requests/api/graphql/namespace/package_settings_spec.rb:30 # getting namespace package settings in a namespace behaves like a working graphql query matches the JSON schema
rspec ./spec/controllers/profiles/webauthn_registrations_controller_spec.rb:17 # Profiles::WebauthnRegistrationsController#destroy redirects to the profile two factor authentication page
rspec ./spec/controllers/profiles/webauthn_registrations_controller_spec.rb:23 # Profiles::WebauthnRegistrationsController#destroy destroys the webauthn registration
rspec ./spec/controllers/profiles/webauthn_registrations_controller_spec.rb:27 # Profiles::WebauthnRegistrationsController#destroy calls the Webauthn::DestroyService
rspec ./spec/controllers/concerns/continue_params_spec.rb:24 # ContinueParams returns an empty hash if params are not present
rspec ./spec/controllers/concerns/continue_params_spec.rb:32 # ContinueParams cleans up any params that are not allowed
rspec ./spec/controllers/concerns/continue_params_spec.rb:40 # ContinueParams does not allow cross host redirection
rspec ./spec/controllers/concerns/continue_params_spec.rb:48 # ContinueParams allows redirecting to a path with querystring
rspec ./spec/controllers/projects/pipelines_settings_controller_spec.rb:18 # Projects::PipelinesSettingsController GET show redirects with 302 status code
rspec ./spec/requests/user_sends_malformed_strings_spec.rb:11 # User sends malformed strings raises a 400 error with a null byte
Randomized with seed 28343
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
[TEST PROF INFO] Time spent in factories: 06:37.638 (30.99% of total time)
RSpec exited with 1.
(Outdated example from previous approach) Click to expand

https://gitlab.com/gitlab-org/gitlab/-/jobs/5729566902 (Tested with a 20 minute duration limit)

# [RSpecRunTime] Starting example group spec/lib/gitlab/ci/config/external/processor_spec.rb. Expected to take 17.2 seconds.
Gitlab::Ci::Config::External::Processor
  #perform
    when no external files defined
      returns the same values
# [RSpecRunTime] RSpec elapsed time: 19 minutes 59.71 seconds.
    when an invalid local file is defined
      raises an error
    when an invalid remote file is defined
      raises an error
      when no external files defined
        returns the same values (FAILED - 1)
        #perform
          when no external files defined
            returns the same values (FAILED - 2)
auto_explain log contains 1478 entries for main, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-21-24.337.main.ndjson.gz
took 40.655164022
auto_explain log contains 1479 entries for ci, writing to /builds/gitlab-org/gitlab/auto_explain/rspec-unit-pg14-21-24.337.ci.ndjson.gz
took 36.247314278
Knapsack report was generated. Preview:
{
  "spec/services/groups/transfer_service_spec.rb": 203.226964477999,
  "spec/lib/gitlab/git_access_spec.rb": 215.9480817700005,
  "spec/models/project_team_spec.rb": 127.62889825999991,
  "spec/services/projects/create_service_spec.rb": 80.28354589500123,
  "spec/services/projects/transfer_service_spec.rb": 78.99876644699907,
  "spec/services/boards/lists/move_service_spec.rb": 68.36356188799982,
  "spec/lib/gitlab/email/handler/service_desk_handler_spec.rb": 61.10803072199997,
  "spec/lib/gitlab/auth/o_auth/user_spec.rb": 23.907183325000005,
  "spec/lib/object_storage/direct_upload_spec.rb": 30.33067408399984,
  "spec/workers/packages/maven/metadata/sync_worker_spec.rb": 36.98366078300023,
  "spec/presenters/projects/security/configuration_presenter_spec.rb": 23.787086599999384,
  "spec/models/ci/ref_spec.rb": 26.294617319999816,
  "spec/services/repositories/changelog_service_spec.rb": 28.791588190000766,
  "spec/models/packages/package_file_spec.rb": 13.143226361000416,
  "spec/models/sent_notification_spec.rb": 18.401240836999932,
  "spec/lib/container_registry/tag_spec.rb": 18.741761397999653,
  "spec/graphql/resolvers/merge_requests_resolver_spec.rb": 15.975726384000154,
  "spec/services/members/groups/creator_service_spec.rb": 13.699334593999083,
  "spec/lib/gitlab/gitaly_client/commit_service_spec.rb": 6.696111897999799,
  "spec/graphql/mutations/merge_requests/set_locked_spec.rb": 18.652847422999912,
  "spec/lib/banzai/color_parser_spec.rb": 4.716447590000826,
  "spec/models/project_setting_spec.rb": 12.93901658499999,
  "spec/models/user_preference_spec.rb": 4.64821825099898,
  "spec/lib/gitlab/ci/lint_spec.rb": 10.913059403999796,
  "spec/lib/gitlab/checks/tag_check_spec.rb": 13.21841184799996,
  "spec/lib/gitlab/ci/status/stage/factory_spec.rb": 14.400250534001316,
  "spec/models/internal_id_spec.rb": 11.246825436001018,
  "spec/models/projects/data_transfer_spec.rb": 3.8265491020010813,
  "spec/services/post_receive_service_spec.rb": 7.476237794999179,
  "spec/lib/gitlab/ci/config/external/processor_spec.rb": 1.4967361930011975
}
Knapsack global time execution for tests: 19m 55s
Pending: (Failures listed here are expected and do not affect your suite's status)
  1) Gitlab::GitAccess#check_push_access!  has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  2) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the exact protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  3) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  4) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  5) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the exact protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  6) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the exact protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  7) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feature protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  8) Gitlab::GitAccess#check_push_access!  has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  9) Gitlab::GitAccess#check_push_access! when developers are allowed to push into the wildcard protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  10) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is in progress has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  11) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when the merge request is not in progress has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  12) Gitlab::GitAccess#check_push_access! when developers are allowed to merge into the wildcard protected branch when a merge request exists for the given source/target branch when a merge request does not exist for the given source/target branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  13) Gitlab::GitAccess#check_push_access! when developers are allowed to push and merge into the wildcard protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
  14) Gitlab::GitAccess#check_push_access! when no one is allowed to push to the feat* protected branch has the correct permissions for admin_without_admin_modes
     # All admins are allowed to perform actions https://gitlab.com/gitlab-org/gitlab/-/issues/296509
     # ./spec/lib/gitlab/git_access_spec.rb:852
Failures:
  1) Gitlab::Ci::Config::External::Processor#perform when no external files defined returns the same values
     Got 2 failures:
     1.1) Failure/Error:
            RSpec::Expectations.fail_with(
              'Rspec suite has reached the 80 minute time limit and is forced to exit with error.')
            Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          # ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
     1.2) Failure/Error:
            RSpec::Expectations.fail_with(
              'Rspec suite has reached the 80 minute time limit and is forced to exit with error.')
            Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          # ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
          # ------------------
          # --- Caused by: ---
          #   Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          #   ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
  2) Gitlab::Ci::Config::External::Processor#perform when no external files defined returns the same values
     Got 2 failures:
     2.1) Failure/Error:
            RSpec::Expectations.fail_with(
              'Rspec suite has reached the 80 minute time limit and is forced to exit with error.')
            Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          # ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
     2.2) Failure/Error:
            RSpec::Expectations.fail_with(
              'Rspec suite has reached the 80 minute time limit and is forced to exit with error.')
            Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          # ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
          # ------------------
          # --- Caused by: ---
          #   Rspec suite has reached the 80 minute time limit and is forced to exit with error.
          #   ./spec/support/rspec_run_time.rb:50:in `example_group_finished'
Finished in 21 minutes 18 seconds (files took 44.17 seconds to load)
1852 examples, 2 failures, 14 pending
Failed examples:
rspec ./spec/lib/gitlab/ci/config/external/processor_spec.rb:44 # Gitlab::Ci::Config::External::Processor#perform when no external files defined returns the same values
rspec ./spec/lib/gitlab/ci/config/external/processor_spec.rb:44 # Gitlab::Ci::Config::External::Processor#perform when no external files defined returns the same values
Randomized with seed 54673
bundler: failed to load command: rspec (/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec)
Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected
/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:102:in `block in <module:Support>': Rspec suite has reached the 80 minute time limit and is forced to exit with error. (RSpec::Expectations::ExpectationNotMetError)
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:111:in `notify_failure'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-expectations-3.12.3/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
	from /builds/gitlab-org/gitlab/spec/support/rspec_run_time.rb:50:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:209:in `block in notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:123:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:620:in `ensure in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:620:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
	from /usr/local/bin/bundle:25:in `load'
	from /usr/local/bin/bundle:25:in `<main>'
/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:102:in `block in <module:Support>': Rspec suite has reached the 80 minute time limit and is forced to exit with error. (RSpec::Expectations::ExpectationNotMetError)
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:111:in `notify_failure'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-expectations-3.12.3/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
	from /builds/gitlab-org/gitlab/spec/support/rspec_run_time.rb:50:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:209:in `block in notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:123:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:661:in `block in for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:660:in `block in for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:614:in `rescue in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:610:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
	from /usr/local/bin/bundle:25:in `load'
	from /usr/local/bin/bundle:25:in `<main>'
/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:102:in `block in <module:Support>': Rspec suite has reached the 80 minute time limit and is forced to exit with error. (RSpec::Expectations::ExpectationNotMetError)
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:111:in `notify_failure'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-expectations-3.12.3/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
	from /builds/gitlab-org/gitlab/spec/support/rspec_run_time.rb:50:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:209:in `block in notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:123:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:620:in `ensure in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:620:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
	from /usr/local/bin/bundle:25:in `load'
	from /usr/local/bin/bundle:25:in `<main>'
/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:102:in `block in <module:Support>': Rspec suite has reached the 80 minute time limit and is forced to exit with error. (RSpec::Expectations::ExpectationNotMetError)
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:111:in `notify_failure'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-expectations-3.12.3/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
	from /builds/gitlab-org/gitlab/spec/support/rspec_run_time.rb:50:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:209:in `block in notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:123:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:661:in `block in for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:658:in `for_filtered_examples'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:614:in `rescue in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:610:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
	from /usr/local/bin/bundle:25:in `load'
	from /usr/local/bin/bundle:25:in `<main>'
/builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:102:in `block in <module:Support>': Rspec suite has reached the 80 minute time limit and is forced to exit with error. (RSpec::Expectations::ExpectationNotMetError)
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-support-3.12.0/lib/rspec/support.rb:111:in `notify_failure'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-expectations-3.12.3/lib/rspec/expectations/fail_with.rb:35:in `fail_with'
	from /builds/gitlab-org/gitlab/spec/support/rspec_run_time.rb:50:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:209:in `block in notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `each'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:208:in `notify'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:123:in `example_group_finished'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:620:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `block in run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/example_group.rb:608:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `map'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:116:in `block in run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/reporter.rb:74:in `report'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:115:in `run_specs'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:89:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:71:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/lib/rspec/core/runner.rb:45:in `invoke'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/rspec-core-3.12.2/exe/rspec:4:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/bin/rspec:25:in `<top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli/exec.rb:23:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:492:in `exec'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:34:in `dispatch'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/cli.rb:28:in `start'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:37:in `block in <top (required)>'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /builds/gitlab-org/gitlab/vendor/ruby/3.1.0/gems/bundler-2.4.22/exe/bundle:29:in `<top (required)>'
	from /usr/local/bin/bundle:25:in `load'
	from /usr/local/bin/bundle:25:in `<main>'
[TEST PROF INFO] Time spent in factories: 11:10.625 (52.23% of total time)
RSpec exited with 1.
The file set inside RSPEC_LAST_RUN_RESULTS_FILE ENV variable does not exist or is empty. As a result, we won't retry failed specs.

Positive Impact

  • These long jobs will have a chance to upload artifacts before timeout occurs.
  • Failed jobs don't get to retry when time is running out.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Jennifer Li

Merge request reports