RSpec failure: spec/features/users/login_spec.rb:1063
Summary
Reported in master broken incident:
Failures:
1) Login when terms are enforced when the user does not have an email configured asks the user to accept the terms before setting an email
Got 0 failures and 2 other errors:
1.1) Failure/Error: connection.send(...)
ActiveRecord::RecordNotUnique:
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_user_preferences_on_user_id"
DETAIL: Key (user_id)=(376) already exists.
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:129:in `block in read_write'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:200:in `retry_with_backoff'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:118:in `read_write'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:61:in `block (2 levels) in <class:ConnectionProxy>'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:129:in `block in read_write'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:200:in `retry_with_backoff'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:118:in `read_write'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:129:in `block in read_write'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:200:in `retry_with_backoff'
# ./lib/gitlab/database/load_balancing/load_balancer.rb:118:in `read_write'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'
# ./app/services/users/update_service.rb:36:in `execute'
# ./app/controllers/profiles_controller.rb:28:in `block in update'
# ./app/controllers/profiles_controller.rb:27:in `update'
# ./ee/lib/gitlab/ip_address_state.rb:10:in `with'
# ./ee/app/controllers/ee/application_controller.rb:46:in `set_current_ip_address'
# ./lib/gitlab/auth/current_user_mode.rb:72:in `with_current_admin'
# ./app/controllers/application_controller.rb:537:in `set_current_admin'
# ./lib/gitlab/session.rb:11:in `with_session'
# ./app/controllers/application_controller.rb:525: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:507:in `set_current_context'
# ./lib/gitlab/middleware/memory_report.rb:13:in `call'
# ./lib/gitlab/middleware/speedscope.rb:13:in `call'
# ./lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
# ./lib/gitlab/query_limiting/transaction.rb:45:in `run'
# ./lib/gitlab/query_limiting/middleware.rb:16:in `call'
# ./lib/gitlab/database/load_balancing/rack_middleware.rb:23: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:37:in `call'
# ./lib/gitlab/middleware/static.rb:11:in `call'
# ./lib/gitlab/testing/clear_process_memory_cache_middleware.rb:13:in `call'
# ./lib/gitlab/testing/request_inspector_middleware.rb:35:in `call'
# ./lib/gitlab/testing/robots_blocker_middleware.rb:30:in `call'
# ./lib/gitlab/testing/request_blocker_middleware.rb:47: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'
# ------------------
# --- Caused by: ---
# PG::UniqueViolation:
# ERROR: duplicate key value violates unique constraint "index_user_preferences_on_user_id"
# DETAIL: Key (user_id)=(376) already exists.
# ./lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'
One of the jobs with the failure: https://gitlab.com/gitlab-org/gitlab/-/jobs/3598172790
Steps to reproduce
Please refer to Flaky tests documentation to learn more about how to reproduce them.
Proposed Resolution
Please refer to the Resolution guidance to learn more about resolution of broken master.
Edited by Jennifer Li