Rspec fail: Content Security Policy GET #explore when vite enabled during development adds vite csp
When Content Security Policy GET #explore when vite enabled during development adds vite csp
(spec/requests/content_security_policy_spec.rb
) is run it fails with an error:
Sidekiq::Worker::EnqueueFromTransactionError: GitlabPerformanceBarStatsWorker.perform_in cannot be enqueued inside a transaction as this can lead to
race conditions when the worker runs before the transaction is committed and
tries to access a model that has not been saved yet.
Use an `after_commit` hook, or include `AfterCommitQueue` and use a `run_after_commit` block instead.
0) Content Security Policy GET #explore when vite enabled during development adds vite csp
Failure/Error:
GitlabPerformanceBarStatsWorker.perform_in(
GitlabPerformanceBarStatsWorker::WORKER_DELAY,
uuid
)
Sidekiq::Worker::EnqueueFromTransactionError:
GitlabPerformanceBarStatsWorker.perform_in cannot be enqueued inside a transaction as this can lead to
race conditions when the worker runs before the transaction is committed and
tries to access a model that has not been saved yet.
Use an `after_commit` hook, or include `AfterCommitQueue` and use a `run_after_commit` block instead.
# ./config/initializers/forbid_sidekiq_in_transactions.rb:28:in `raise_inside_transaction_exception'
# ./config/initializers/forbid_sidekiq_in_transactions.rb:43:in `block (2 levels) in <module:NoEnqueueingFromTransactions>'
# ./lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb:40:in `enqueue_stats_job'
# ./lib/gitlab/performance_bar/redis_adapter_when_peek_enabled.rb:13:in `save'
# ./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/basic_health_check.rb:25:in `call'
# ./lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
# ./lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
# ./lib/gitlab/middleware/request_context.rb:15: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:44:in `call'
# ./lib/gitlab/middleware/static.rb:11:in `call'
# ./lib/gitlab/webpack/dev_server_middleware.rb:34:in `perform_request'
# ./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:79:in `call'
# ./spec/requests/content_security_policy_spec.rb:56:in `block (4 levels) in <top (required)>'
# ./spec/spec_helper.rb:450:in `block (3 levels) in <top (required)>'
# ./spec/support/sidekiq_middleware.rb:18:in `with_sidekiq_server_middleware'
# ./spec/spec_helper.rb:441:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:437:in `block (3 levels) in <top (required)>'
# ./lib/gitlab/application_context.rb:66:in `with_raw_context'
# ./spec/spec_helper.rb:437:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:268:in `block (2 levels) in <top (required)>'
# ./spec/support/system_exit_detected.rb:7: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>'
Example of a failing job: https://gitlab.com/gitlab-org/gitlab/-/jobs/5026749627
Edited by Stanislav Lashmanov