Skip to content

Sidekiq and Webservice deployments not using the configured Redis user

Summary

Sidekiq and Webservice pods are trying to communicate with Redis using the default user when the user is explicitly set to a different user using global.redis.user configuration value.

The installation works, if both the default and the custom Redis users are enabled, and use the same password, or when the default Redis user is configured for GitLab to use.

Steps to reproduce

  • Deploy a Redis instance with default user disabled, and create a different user with sufficient permissions for GitLab.
  • Set global.redis.user to the previously created Redis user.
  • In the logs of Sidekiq and Webservice, we can observe that they are trying to connect to Redis via a connection url which does not include the custom user and the password as seen in the logs (in redis(s)://user:pw@url/port format)

Configuration used

global:
  redis:
    host: redis.gitlab.svc.cluster.local
    user: redis-user
    scheme: rediss
    port: 6379/10
    auth:
      enabled: true
      secret: gitlab-redis-secret
      key: password
redis:
  install: false

Current behavior

Sidekiq and Webservice pods connecting to Redis via default user.

Expected behavior

Sidekiq and Webservice pods connecting to Redis via only the configured user.

Versions

  • Chart: 8.2.1
  • Platform:
    • Self-hosted: OpenShift
  • Kubernetes: (kubectl version)
    • Client: v1.28.2
    • Server: v1.21.14
  • Helm: (helm version)
    • Client: v3.9.0

Relevant logs

Sidekiq log

{
    "component": "gitlab",
    "subcomponent": "exceptions_json",
    "severity": "ERROR",
    "time": "2024-07-31T12:32:02.683Z",
    "meta.caller_id": "Cronjob",
    "correlation_id": "ad49002804b5f0f9f65\n72108aec61bf6",
    "meta.root_caller_id": "Cronjob",
    "meta.feature_category": "groups_and_projects",
    "exception.class": "RedisClient::CommandError",
    "exception.message": "NOAUTH Authentication\n required. (rediss://redis.gitlab.svc.cluster.local:6379/10)",
    "exception.backtrace": [
        "redis-client (0.22.2) lib/redis_client/connection_mixin.rb:36:in `call'",
        "redis-cl\nient (0.22.2) lib/redis_client.rb:294:in `block (2 levels) in call_v'",
        "redis-client (0.22.2) lib/redis_client/middlewares.rb:16:in `call'",
        "lib/gitlab/instrumentation/redis_client_\nmiddleware.rb:14:in `block in call'",
        "lib/gitlab/instrumentation/redis_helper.rb:17:in `instrument_call'",
        "lib/gitlab/instrumentation/redis_client_middleware.rb:13:in `call'",
        "redis\n-client (0.22.2) lib/redis_client.rb:293:in `block in call_v'",
        "redis-client (0.22.2) lib/redis_client.rb:699:in `ensure_connected'",
        "lib/gitlab/patch/redis_client.rb:12:in `ensure_\nconnected'",
        "redis-client (0.22.2) lib/redis_client.rb:292:in `call_v'",
        "redis (5.2.0) lib/redis/client.rb:90:in `call_v'",
        "redis (5.2.0) lib/redis.rb:152:in `block in send_command'\n",
        "redis (5.2.0) lib/redis.rb:151:in `synchronize'",
        "redis (5.2.0) lib/redis.rb:151:in `send_command'",
        "redis (5.2.0) lib/redis/commands/strings.rb:95:in `set'",
        "lib/gitlab/sidekiq_\nmiddleware/duplicate_jobs/duplicate_job.rb:62:in `block in check!'",
        "lib/gitlab/redis/wrapper.rb:25:in `block in with'",
        "connection_pool (2.4.1) lib/connection_pool.rb:110:in `block\n (2 levels) in with'",
        "connection_pool (2.4.1) lib/connection_pool.rb:109:in `handle_interrupt'",
        "connection_pool (2.4.1) lib/connection_pool.rb:109:in `block in with'",
        "connection_\npool (2.4.1) lib/connection_pool.rb:106:in `handle_interrupt'",
        "connection_pool (2.4.1) lib/connection_pool.rb:106:in `with'",
        "lib/gitlab/redis/wrapper.rb:25:in `with'",
        "lib/gitlab/\nsidekiq_middleware/duplicate_jobs/duplicate_job.rb:271:in `with_redis'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb:62:in `check!'",
        "lib/gitlab/sidekiq_middleware\n/duplicate_jobs/strategies/deduplicates_when_scheduling.rb:75:in `check!'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb:35:in `block in d\neduplicate?'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/base.rb:45:in `with_dedup_lock'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_sc\nheduling.rb:34:in `deduplicate?'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb:18:in `schedule'",
        "lib/gitlab/sidekiq_middleware/duplicate\n_jobs/duplicate_job.rb:37:in `schedule'",
        "lib/gitlab/sidekiq_middleware/duplicate_jobs/client.rb:8:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `trav\nerse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
        "lib/gitlab/sidekiq_middleware/concurrency_limit/middleware.rb:20:in `schedule'",
        "lib/g\nitlab/sidekiq_middleware/concurrency_limit/client.rb:8:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sideki\nq/middleware/chain.rb:183:in `block in traverse'",
        "lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb:21:in `schedule'",
        "lib/gitlab/sidekiq_middleware/pause_control/stra\ntegy_handler.rb:15:in `schedule'",
        "lib/gitlab/sidekiq_middleware/pause_control/client.rb:8:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
        "\nvendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
        "lib/gitlab/database/load_balancing/sidekiq_client_middleware.rb:23:in `call'",
        "vendor/gems/sid\nekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
        "gitlab-labkit (0.36.1) lib/labk\nit/middleware/sidekiq/client.rb:21:in `block in call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:180:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middlewar\ne/chain.rb:183:in `block in traverse'",
        "gitlab-labkit (0.36.1) lib/labkit/middleware/sidekiq/context/client.rb:23:in `block in call'",
        "gitlab-labkit (0.36.1) lib/labkit/context.rb:3\n5:in `with_context'",
        "gitlab-labkit (0.36.1) lib/labkit/middleware/sidekiq/context/client.rb:20:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `travers\ne'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:173:in `invoke'",
        "gitlab-labkit (0.36.1) lib/labkit/middleware/sidekiq/client.rb:20:in `call'",
        "vendor/gems/sidekiq-7.\n1.6/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
        "lib/gitlab/application_context.rb:151:\nin `block in use'",
        "gitlab-labkit (0.36.1) lib/labkit/context.rb:35:in `with_context'",
        "lib/gitlab/application_context.rb:151:in `use'",
        "lib/gitlab/application_context.rb:82:in `wit\nh_context'",
        "lib/gitlab/sidekiq_middleware/worker_context/client.rb:36:in `block in call'",
        "lib/gitlab/application_context.rb:151:in `block in use'",
        "gitlab-labkit (0.36.1) lib/labk\nit/context.rb:35:in `with_context'",
        "lib/gitlab/application_context.rb:151:in `use'",
        "lib/gitlab/sidekiq_middleware/worker_context.rb:11:in `wrap_in_optional_context'",
        "lib/gitlab/s\nidekiq_middleware/worker_context/client.rb:18:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middlew\nare/chain.rb:183:in `block in traverse'",
        "sentry-sidekiq (5.17.3) lib/sentry/sidekiq/sentry_context_middleware.rb:63:in `call'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/cha\nin.rb:182:in `traverse'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/middleware/chain.rb:173:in `invoke'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/client.rb:88:in `push'",
        "vendor/gems/side\nkiq-7.1.6/lib/sidekiq/job.rb:361:in `client_push'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/job.rb:198:in `perform_async'",
        "lib/gitlab/patch/sidekiq_job_setter.rb:16:in `block in perf\norm_async'",
        "lib/gitlab/sidekiq_sharding/router.rb:29:in `block in route'",
        "lib/gitlab/sidekiq_sharding/validator.rb:31:in `allow_unrouted_sidekiq_calls'",
        "lib/gitlab/sidekiq_shardi\nng/router.rb:29:in `route'",
        "lib/gitlab/patch/sidekiq_job_setter.rb:14:in `perform_async'",
        "sidekiq-cron (1.12.0) lib/sidekiq/cron/job.rb:102:in `enqueue_sidekiq_worker'",
        "sidekiq-c\nron (1.12.0) lib/sidekiq/cron/job.rb:67:in `enque!'",
        "sidekiq-cron (1.12.0) lib/sidekiq/cron/job.rb:45:in `test_and_enque_for_time!'",
        "sidekiq-cron (1.12.0) lib/sidekiq/cron/poller.\nrb:36:in `enqueue_job'",
        "sidekiq-cron (1.12.0) lib/sidekiq/cron/poller.rb:23:in `block in enqueue'",
        "sidekiq-cron (1.12.0) lib/sidekiq/cron/poller.rb:22:in `each'",
        "sidekiq-cron (1.\n12.0) lib/sidekiq/cron/poller.rb:22:in `enqueue'",
        "lib/gitlab/patch/sidekiq_poller.rb:9:in `block (2 levels) in enqueue'",
        "gems/gitlab-safe_request_store/lib/gitlab/safe_request_sto\nre.rb:66:in `enabling_request_store'",
        "gems/gitlab-safe_request_store/lib/gitlab/safe_request_store.rb:59:in `ensure_request_store'",
        "lib/gitlab/patch/sidekiq_poller.rb:8:in `block\nin enqueue'",
        "activesupport (7.0.8.4) lib/active_support/execution_wrapper.rb:92:in `wrap'",
        "activesupport (7.0.8.4) lib/active_support/reloader.rb:72:in `block in wrap'",
        "activesup\nport (7.0.8.4) lib/active_support/execution_wrapper.rb:92:in `wrap'",
        "activesupport (7.0.8.4) lib/active_support/reloader.rb:71:in `wrap'",
        "lib/gitlab/patch/sidekiq_poller.rb:7:in `\nenqueue'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/scheduled.rb:99:in `block in start'",
        "vendor/gems/sidekiq-7.1.6/lib/sidekiq/component.rb:10:in `watchdog'",
        "vendor/gems/sidekiq-7.1.\n6/lib/sidekiq/component.rb:19:in `block in safe_thread'"
    ],
    "user.username": null,
    "tags.program": "sidekiq",
    "tags.locale": "en",
    "tags.feature_category": "groups_and_projects",
    "tags.correl\nation_id": "ad49002804b5f0f9f6572108aec61bf6",
    "extra.storage": "queues_metadata",
    "extra.storage_shard": "default"
}

Webservice log

{
    "component": "gitlab",
    "subcomponent": "exceptions_json",
    "severity": "ERROR",
    "time": "2024-07-31T12:34:55.194Z",
    "correlation_id": "a0ec3663-9aaa-4c91-8e22-580de8581a6b",
    "exception.class": "RedisClient::Com\n    mandError",
    "exception.message": "NOAUTH Authentication required. (rediss://redis.gitlab.svc.cluster.local:6379/10)",
    "exception.backtrace": [
        "redis-client (0.22.2) lib/redis_client/connection_mixin.rb:\n    36:in `call'",
        "redis-client (0.22.2) lib/redis_client.rb:294:in `block (2 levels) in call_v'",
        "redis-client (0.22.2) lib/redis_client/middlewares.rb:16:in `call'",
        "lib/gitlab/instrumentation/redis_client_middlew\n    are.rb:14:in `block in call'",
        "lib/gitlab/instrumentation/redis_helper.rb:17:in `instrument_call'",
        "lib/gitlab/instrumentation/redis_client_middleware.rb:13:in `call'",
        "redis-client (0.22.2) lib/redis_client.rb:\n    293:in `block in call_v'",
        "redis-client (0.22.2) lib/redis_client.rb:699:in `ensure_connected'",
        "lib/gitlab/patch/redis_client.rb:12:in `ensure_connected'",
        "redis-client (0.22.2) lib/redis_client.rb:292:in `call\n    _v'",
        "redis (5.2.0) lib/redis/client.rb:90:in `call_v'",
        "redis (5.2.0) lib/redis.rb:152:in `block in send_command'",
        "redis (5.2.0) lib/redis.rb:151:in `synchronize'",
        "redis (5.2.0) lib/redis.rb:151:in `send_comm\n    and'",
        "redis (5.2.0) lib/redis/commands/strings.rb:97:in `set'",
        "activesupport (7.0.8.4) lib/active_support/cache/redis_cache_store.rb:392:in `block (2 levels) in write_serialized_entry'",
        "connection_pool (2.4.1\n    ) lib/connection_pool.rb:110:in `block (2 levels) in with'",
        "connection_pool (2.4.1) lib/connection_pool.rb:109:in `handle_interrupt'",
        "connection_pool (2.4.1) lib/connection_pool.rb:109:in `block in with'",
        "con\n    nection_pool (2.4.1) lib/connection_pool.rb:106:in `handle_interrupt'",
        "connection_pool (2.4.1) lib/connection_pool.rb:106:in `with'",
        "activesupport (7.0.8.4) lib/active_support/cache/redis_cache_store.rb:392:in\n     `block in write_serialized_entry'",
        "activesupport (7.0.8.4) lib/active_support/cache/redis_cache_store.rb:468:in `failsafe'",
        "activesupport (7.0.8.4) lib/active_support/cache/redis_cache_store.rb:391:in `write_\n    serialized_entry'",
        "activesupport (7.0.8.4) lib/active_support/cache/strategy/local_cache.rb:139:in `write_serialized_entry'",
        "activesupport (7.0.8.4) lib/active_support/cache/redis_cache_store.rb:374:in `write_\n    entry'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:507:in `block in write'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:783:in `block in instrument'",
        "activesupport (7.0.8.4) lib/active_suppor\n    t/notifications.rb:206:in `block in instrument'",
        "activesupport (7.0.8.4) lib/active_support/notifications/instrumenter.rb:24:in `instrument'",
        "activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in\n    `instrument'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:783:in `instrument'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:505:in `write'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:8\n    12:in `save_block_result_to_cache'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:338:in `fetch'",
        "flipper-active_support_cache_store (0.26.2) lib/flipper/adapters/active_support_cache_store.rb:72:in `get\n    '",
        "flipper-active_support_cache_store (0.26.2) lib/flipper/adapters/active_support_cache_store.rb:73:in `block in get'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:809:in `block in save_block_result_to\n    _cache'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:783:in `block in instrument'",
        "activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in `block in instrument'",
        "activesupport (7.0.8.4) lib\n    /active_support/notifications/instrumenter.rb:24:in `instrument'",
        "activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in `instrument'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:783:in `in\n    strument'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:808:in `save_block_result_to_cache'",
        "activesupport (7.0.8.4) lib/active_support/cache.rb:338:in `fetch'",
        "flipper-active_support_cache_store (0.26\n    .2) lib/flipper/adapters/active_support_cache_store.rb:72:in `get'",
        "flipper (0.26.2) lib/flipper/adapters/memoizable.rb:67:in `block in get'",
        "flipper (0.26.2) lib/flipper/adapters/memoizable.rb:67:in `fetch'",
        "flipper (0.26.2) lib/flipper/adapters/memoizable.rb:67:in `get'",
        "flipper (0.26.2) lib/flipper/feature.rb:234:in `gate_values'",
        "flipper (0.26.2) lib/flipper/feature.rb:108:in `block in enabled?'",
        "flipper (0.2\n    6.2) lib/flipper/feature.rb:379:in `block in instrument'",
        "flipper (0.26.2) lib/flipper/instrumenters/noop.rb:5:in `instrument'",
        "flipper (0.26.2) lib/flipper/feature.rb:376:in `instrument'",
        "flipper (0.26.2) li\n    b/flipper/feature.rb:105:in `enabled?'",
        "lib/feature.rb:323:in `block in current_feature_value'",
        "lib/feature.rb:338:in `with_feature'",
        "lib/feature.rb:319:in `current_feature_value'",
        "lib/feature.rb:130:in `ena\n    bled?'",
        "lib/feature.rb:145:in `disabled?'",
        "lib/gitlab/lograge/custom_options.rb:39:in `call'",
        "lograge (0.11.2) lib/lograge.rb:37:in `custom_options'",
        "lograge (0.11.2) lib/lograge/log_subscribers/base.rb:61:i\n    n `custom_options'",
        "lograge (0.11.2) lib/lograge/log_subscribers/base.rb:32:in `extract_request'",
        "lograge (0.11.2) lib/lograge/log_subscribers/base.rb:20:in `process_main_event'",
        "lograge (0.11.2) lib/lograge/\n    log_subscribers/action_controller.rb:5:in `process_action'",
        "activesupport (7.0.8.4) lib/active_support/subscriber.rb:149:in `finish'",
        "activesupport (7.0.8.4) lib/active_support/log_subscriber.rb:115:in `finish\n    '",
        "activesupport (7.0.8.4) lib/active_support/notifications/fanout.rb:211:in `finish'",
        "activesupport (7.0.8.4) lib/active_support/notifications/fanout.rb:76:in `block in finish'",
        "activesupport (7.0.8.4) lib/a\n    ctive_support/notifications/fanout.rb:91:in `block in iterate_guarding_exceptions'",
        "activesupport (7.0.8.4) lib/active_support/notifications/fanout.rb:90:in `each'",
        "activesupport (7.0.8.4) lib/active_support/n\n    otifications/fanout.rb:90:in `iterate_guarding_exceptions'",
        "activesupport (7.0.8.4) lib/active_support/notifications/fanout.rb:76:in `finish'",
        "activesupport (7.0.8.4) lib/active_support/notifications/instrumen\n    ter.rb:49:in `finish_with_state'",
        "activesupport (7.0.8.4) lib/active_support/notifications/instrumenter.rb:30:in `instrument'",
        "activesupport (7.0.8.4) lib/active_support/notifications.rb:206:in `instrument'",
        "\n    actionpack (7.0.8.4) lib/action_controller/metal/instrumentation.rb:66:in `process_action'",
        "actionpack (7.0.8.4) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'",
        "activerecord (7.0.8.4) li\n    b/active_record/railties/controller_runtime.rb:27:in `process_action'",
        "actionpack (7.0.8.4) lib/abstract_controller/base.rb:151:in `process'",
        "actionview (7.0.8.4) lib/action_view/rendering.rb:39:in `process'",
        "actionpack (7.0.8.4) lib/action_controller/metal.rb:188:in `dispatch'",
        "actionpack (7.0.8.4) lib/action_controller/metal.rb:251:in `dispatch'",
        "actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:49:i\n    n `dispatch'",
        "actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:32:in `serve'",
        "actionpack (7.0.8.4) lib/action_dispatch/journey/router.rb:50:in `block in serve'",
        "actionpack (7.0.8.4) lib/action_di\n    spatch/journey/router.rb:32:in `each'",
        "actionpack (7.0.8.4) lib/action_dispatch/journey/router.rb:32:in `serve'",
        "actionpack (7.0.8.4) lib/action_dispatch/routing/route_set.rb:852:in `call'",
        "gitlab-experiment\n    (0.9.1) lib/gitlab/experiment/middleware.rb:19:in `call'",
        "omniauth (2.1.0) lib/omniauth/strategy.rb:470:in `call_app!'",
        "omniauth_openid_connect (0.6.1) lib/omniauth/strategies/openid_connect.rb:155:in `other_p\n    hase'",
        "omniauth (2.1.0) lib/omniauth/strategy.rb:195:in `call!'",
        "omniauth (2.1.0) lib/omniauth/strategy.rb:169:in `call'",
        "flipper (0.26.2) lib/flipper/middleware/memoizer.rb:72:in `memoized_call'",
        "flipper (0\n    .26.2) lib/flipper/middleware/memoizer.rb:37:in `call'",
        "lib/gitlab/middleware/sidekiq_shard_awareness_validation.rb:20:in `block in call'",
        "lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'",
        "lib/gitlab/\n    middleware/sidekiq_shard_awareness_validation.rb:20: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_mi\n    ddleware.rb:23:in `call'",
        "lib/gitlab/middleware/go.rb:24: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/quer\n    y_analyzer.rb:40:in `within'",
        "lib/gitlab/middleware/query_analyzer.rb:11:in `call'",
        "lib/gitlab/middleware/organizations/current.rb:20:in `call'",
        "batch-loader (2.0.5) lib/batch_loader/middleware.rb:11:in `call\n    '",
        "rack-attack (6.7.0) lib/rack/attack.rb:103:in `call'",
        "apollo_upload_server (2.1.6) lib/apollo_upload_server/middleware.rb:19:in `call'",
        "lib/gitlab/middleware/multipart.rb:173:in `call'",
        "rack-attack (6.7.0\n    ) lib/rack/attack.rb:127:in `call'",
        "warden (1.2.9) lib/warden/manager.rb:36:in `block in call'",
        "warden (1.2.9) lib/warden/manager.rb:34:in `catch'",
        "warden (1.2.9) lib/warden/manager.rb:34:in `call'",
        "rack-cor\n    s (2.0.2) lib/rack/cors.rb:102:in `call'",
        "rack (2.2.9) lib/rack/tempfile_reaper.rb:15:in `call'",
        "rack (2.2.9) lib/rack/etag.rb:27:in `call'",
        "rack (2.2.9) lib/rack/conditional_get.rb:27:in `call'",
        "rack (2.2.9\n    ) lib/rack/head.rb:12:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/http/permissions_policy.rb:38:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/http/content_security_policy.rb:36:in `call'",
        "lib/gi\n    tlab/middleware/read_only/controller.rb:50:in `call'",
        "lib/gitlab/middleware/read_only.rb:18:in `call'",
        "lib/gitlab/middleware/unauthenticated_session_expiry.rb:18:in `call'",
        "rack (2.2.9) lib/rack/session/abstr\n    act/id.rb:266:in `context'",
        "rack (2.2.9) lib/rack/session/abstract/id.rb:260:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/cookies.rb:704:in `call'",
        "lib/gitlab/middleware/same_site_cookies.rb\n    :27:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'",
        "activesupport (7.0.8.4) lib/active_support/callbacks.rb:99:in `run_callbacks'",
        "actionpack (7.0.8.4) lib/a\n    ction_dispatch/middleware/callbacks.rb:26:in `call'",
        "sentry-rails (5.17.3) lib/sentry/rails/rescued_exception_interceptor.rb:12:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/debug_exceptions.r\n    b:28:in `call'",
        "lib/gitlab/middleware/path_traversal_check.rb:27:in `call'",
        "lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'",
        "sentry-ruby (5.17.3) lib/sentry/rack/capture_exceptions.rb:29:in `bl\n    ock (2 levels) in call'",
        "sentry-ruby (5.17.3) lib/sentry/hub.rb:251:in `with_session_tracking'",
        "sentry-ruby (5.17.3) lib/sentry-ruby.rb:403:in `with_session_tracking'",
        "sentry-ruby (5.17.3) lib/sentry/rack/cap\n    ture_exceptions.rb:20:in `block in call'",
        "sentry-ruby (5.17.3) lib/sentry/hub.rb:59:in `with_scope'",
        "sentry-ruby (5.17.3) lib/sentry-ruby.rb:383:in `with_scope'",
        "sentry-ruby (5.17.3) lib/sentry/rack/capture_e\n    xceptions.rb:19:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'",
        "lib/gitlab/middleware/basic_health_check.rb:25:in `call'",
        "lograge (0.11.2) lib/lograge/rails_ext\n    /rack/logger.rb:15:in `call_app'",
        "railties (7.0.8.4) lib/rails/rack/logger.rb:25:in `block in call'",
        "activesupport (7.0.8.4) lib/active_support/tagged_logging.rb:99:in `block in tagged'",
        "activesupport (7.0.8.\n    4) lib/active_support/tagged_logging.rb:37:in `tagged'",
        "activesupport (7.0.8.4) lib/active_support/tagged_logging.rb:99:in `tagged'",
        "railties (7.0.8.4) lib/rails/rack/logger.rb:25:in `call'",
        "actionpack (7.0.8\n    .4) lib/action_dispatch/middleware/remote_ip.rb:93: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/w\n    ebhook_recursion_detection.rb:15:in `call'",
        "request_store (1.5.1) lib/request_store/middleware.rb:19:in `call'",
        "rack (2.2.9) lib/rack/method_override.rb:24:in `call'",
        "rack (2.2.9) lib/rack/runtime.rb:22:in `c\n    all'",
        "rack-timeout (0.7.0) lib/rack/timeout/core.rb:154:in `block in call'",
        "rack-timeout (0.7.0) lib/rack/timeout/support/timeout.rb:19:in `timeout'",
        "rack-timeout (0.7.0) lib/rack/timeout/core.rb:153:in `call\n    '",
        "config/initializers/fix_local_cache_middleware.rb:11:in `call'",
        "lib/gitlab/middleware/compressed_json.rb:44:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/executor.rb:14:in `call'",
        "lib/git\n    lab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'",
        "rack (2.2.9) lib/rack/sendfile.rb:110:in `call'",
        "lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'",
        "lib/gitlab/metrics/requests_rack_midd\n    leware.rb:79:in `call'",
        "gitlab-labkit (0.36.1) lib/labkit/middleware/rack.rb:22:in `block in call'",
        "gitlab-labkit (0.36.1) lib/labkit/context.rb:35:in `with_context'",
        "gitlab-labkit (0.36.1) lib/labkit/middlew\n    are/rack.rb:21:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/request_id.rb:26:in `call'",
        "actionpack (7.0.8.4) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'",
        "railties (7.0\n    .8.4) lib/rails/engine.rb:530:in `call'",
        "railties (7.0.8.4) lib/rails/railtie.rb:226:in `public_send'",
        "railties (7.0.8.4) lib/rails/railtie.rb:226:in `method_missing'",
        "lib/gitlab/middleware/release_env.rb:13:\n    in `call'",
        "rack (2.2.9) lib/rack/urlmap.rb:74:in `block in call'",
        "rack (2.2.9) lib/rack/urlmap.rb:58:in `each'",
        "rack (2.2.9) lib/rack/urlmap.rb:58:in `call'",
        "puma (6.4.0) lib/puma/configuration.rb:272:in `ca\n    ll'",
        "puma (6.4.0) lib/puma/request.rb:100:in `block in handle_request'",
        "puma (6.4.0) lib/puma/thread_pool.rb:378:in `with_force_shutdown'",
        "puma (6.4.0) lib/puma/request.rb:99:in `handle_request'",
        "puma (6.4.0\n    ) lib/puma/server.rb:443:in `process_client'",
        "puma (6.4.0) lib/puma/server.rb:241:in `block in run'",
        "puma (6.4.0) lib/puma/thread_pool.rb:155:in `block in spawn_thread'"
    ],
    "user.username": null,
    "tags.program": "w\n    eb",
    "tags.locale": "en",
    "tags.feature_category": null,
    "tags.correlation_id": "a0ec3663-9aaa-4c91-8e22-580de8581a6b",
    "extra.storage": "feature_flag",
    "extra.storage_shard": "default"
}