Order dependent spec: spec/services/incident_management/link_alerts/create_service_spec.rb:56 # IncidentManagement::LinkAlerts::CreateService#execute when current user is a developer links alerts to the incident
Summary
Job #3456629657 failed for a66e5239:
Failures:
1) IncidentManagement::LinkAlerts::CreateService#execute when current user is a developer links alerts to the incident
Failure/Error:
expect { execute }
.to change { incident.reload.alert_management_alerts.to_a }
.from([linked_alert])
.to([linked_alert, alert1, alert2])
expected `incident.reload.alert_management_alerts.to_a` to have changed to [#<AlertManagement::Alert id:8 namespace1/project1^alert#1>, #<AlertManagement::Alert id:9 namespace1/project1^alert#2>, #<AlertManagement::Alert id:10 namespace1/project1^alert#3>], but is now [#<AlertManagement::Alert id:10 namespace1/project1^alert#3>, #<AlertManagement::Alert id:9 namespace1/project1^alert#2>, #<AlertManagement::Alert id:8 namespace1/project1^alert#1>]
# ./spec/services/incident_management/link_alerts/create_service_spec.rb:57:in `block (4 levels) in <main>'
# ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:405:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:401:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:401:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:241:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./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 <main>'
2) IncidentManagement::LinkAlerts::CreateService#execute when current user is a developer when linking an alert from another project links an external alert to the incident
Failure/Error:
expect { execute }
.to change { incident.reload.alert_management_alerts.to_a }
.from([linked_alert])
.to([linked_alert, external_alert])
expected `incident.reload.alert_management_alerts.to_a` to have changed to [#<AlertManagement::Alert id:8 namespace1/project1^alert#1>, #<AlertManagement::Alert id:11 namespace2/project2^alert#1>], but is now [#<AlertManagement::Alert id:11 namespace2/project2^alert#1>, #<AlertManagement::Alert id:8 namespace1/project1^alert#1>]
# ./spec/services/incident_management/link_alerts/create_service_spec.rb:75:in `block (5 levels) in <main>'
# ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:405:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:401:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:401:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:241:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./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 <main>'
3) IncidentManagement::LinkAlerts::CreateService#execute when current user does not have permission to read alerts on external project when linking alerts from current and external projects links only alerts the current user can read
Failure/Error:
expect { execute }
.to change { incident.reload.alert_management_alerts.to_a }
.from([linked_alert])
.to([linked_alert, alert1])
expected `incident.reload.alert_management_alerts.to_a` to have changed to [#<AlertManagement::Alert id:8 namespace1/project1^alert#1>, #<AlertManagement::Alert id:9 namespace1/project1^alert#2>], but is now [#<AlertManagement::Alert id:9 namespace1/project1^alert#2>, #<AlertManagement::Alert id:8 namespace1/project1^alert#1>]
# ./spec/services/incident_management/link_alerts/create_service_spec.rb:90:in `block (5 levels) in <main>'
# ./spec/spec_helper.rb:413:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:405:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:401:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:59:in `with_raw_context'
# ./spec/spec_helper.rb:401:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:241:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7:in `block (2 levels) in <main>'
# ./spec/support/flaky_tests.rb:27:in `block (2 levels) in <main>'
# ./spec/support/database/prevent_cross_joins.rb:106:in `block (3 levels) in <main>'
# ./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 <main>'
Finished in 8.85 seconds (files took 41.97 seconds to load)
3 examples, 3 failures
Failed examples:
rspec ./spec/services/incident_management/link_alerts/create_service_spec.rb:56 # IncidentManagement::LinkAlerts::CreateService#execute when current user is a developer links alerts to the incident
rspec ./spec/services/incident_management/link_alerts/create_service_spec.rb:74 # IncidentManagement::LinkAlerts::CreateService#execute when current user is a developer when linking an alert from another project links an external alert to the incident
rspec ./spec/services/incident_management/link_alerts/create_service_spec.rb:89 # IncidentManagement::LinkAlerts::CreateService#execute when current user does not have permission to read alerts on external project when linking alerts from current and external projects links only alerts the current user can read
Caveat
This is only happening on PG11.
Steps to reproduce
I wasn't able to reproduce these spec failures locally when running:
git checkout a66e52398ee41efa24a8243a74e72def9cc0a4ef
bundle exec rspec spec/services/incident_management/link_alerts/create_service_spec.rb
Proposed Resolution
Please refer to the Resolution guidance to learn more about resolution of broken master.
Edited by Nao Hashizume