Artifact uploads fails when using a Windows network share to store artifacts, a Windows runner is used AND the project configuration includes `artifacts:reports:dotenv`

Summary

This is a reincarnation of gitlab-runner#27887 (closed). The latter included a number of unrelated symptoms, some of which were red herrings, some of which have workarounds, and one which is a legitimate and reproducible bug. Said remaining legitimate bug is not in runner (or at least no only in runner, and the primary symptom originates in the Ruby), which is why it's being reincarnated here. Refer to that ticket for the full history, but the summary is here.

Steps to reproduce

  1. Configure a self-managed instance of GitLab to use a Windows network share as the CI artifact storage location by pointing gitlab_rails['artifacts_path'] to a Windows share.
  2. Create a job that echo's something to a file, and add that file as a dotenv artifact (see below project config)
  3. Ensure a Windows runner is used by adding a windows tag on the job or any other tag that you use with Windows runners (see below project config)
  4. Trigger a pipeline run

Example Project

stages:
  - test

test:
  stage: test
  tags:
    - windows
  script:
    - echo test job!!!!!!!!!!!!!!
    - Add-Content -Path build.env -Value "MY_ENV_VAR=true"
  artifacts:
    reports:
      dotenv: build.env

What is the current bug behavior?

The job fails when uploading the artifact(s) with the following error:

In the job log in UI:

WARNING: Uploading artifacts as "dotenv" to coordinator... POST https://<your-gitlab-instance>/api/v4/jobs/<JOB_ID>/artifacts: 500 Internal Server Error  id=1296 responseStatus=500 Internal Server Error status=500 token=*****
FATAL: invalid argument    

In the production.log:

Errno::EINVAL (Invalid argument @ rb_sysopen - /mnt/gitlab_artifacts/tmp/cache/1674730624-14775-0002-4887/.env.gz):
/opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `initialize'
  /opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `open'
  /opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `open'
  /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/ci/artifactable.rb:46:in `each_blob'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/parse_dotenv_artifact_service.rb:38:in `parse!'

Note that the upload does NOT fail when artifacts:paths is used instead of artifacts:reports:dotenv

What is the expected correct behavior?

Uploading the dotenv artifact succeeds.

Relevant logs and/or screenshots

Click to expand the details of the error
Errno::EINVAL (Invalid argument @ rb_sysopen - /mnt/gitlab_artifacts/tmp/cache/1674730624-14775-0002-4887/.env.gz):
  /opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `initialize'
  /opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `open'
  /opt/gitlab/embedded/service/gitlab-rails/app/uploaders/gitlab_uploader.rb:103:in `open'
  /opt/gitlab/embedded/service/gitlab-rails/app/models/concerns/ci/artifactable.rb:46:in `each_blob'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/parse_dotenv_artifact_service.rb:38:in `parse!'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/parse_dotenv_artifact_service.rb:13:in `execute'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/job_artifacts/create_service.rb:169:in `parse_dotenv_artifact'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/job_artifacts/create_service.rb:121:in `parse_artifact'
  /opt/gitlab/embedded/service/gitlab-rails/app/services/ci/job_artifacts/create_service.rb:43:in `execute'
  /opt/gitlab/embedded/service/gitlab-rails/lib/api/ci/runner.rb:326:in `block (2 levels) in <class:Runner>'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:59:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:59:in `block (2 levels) in generate_api_method'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/notifications.rb:205:in `instrument'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:58:in `block in generate_api_method'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:341:in `execute'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:267:in `block in run'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/notifications.rb:205:in `instrument'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:247:in `run'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:322:in `block in build_stack'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:36:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:36:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/middleware/ip_restrictor.rb:14:in `block in call'
  /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/ip_address_state.rb:10:in `with'
  /opt/gitlab/embedded/service/gitlab-rails/ee/lib/gitlab/middleware/ip_restrictor.rb:13:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:36:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/api/api_guard.rb:215:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:36:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-oauth2-1.21.3/lib/rack/oauth2/server/resource.rb:20:in `_call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-oauth2-1.21.3/lib/rack/oauth2/server/resource/bearer.rb:8:in `_call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-oauth2-1.21.3/lib/rack/oauth2/server/abstract/handler.rb:17:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/error.rb:39:in `block in call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/error.rb:38:in `catch'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/error.rb:38:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape_logging-1.8.4/lib/grape_logging/middleware/request_logger.rb:60:in `block in call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape_logging-1.8.4/lib/grape_logging/middleware/request_logger.rb:58:in `catch'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape_logging-1.8.4/lib/grape_logging/middleware/request_logger.rb:58:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/middleware/base.rb:29:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/head.rb:12:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:231:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/endpoint.rb:225:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router/route.rb:58:in `exec'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:116:in `process_route'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:72:in `block in identity'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:91:in `transaction'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:70:in `identity'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:55:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:132:in `with_optimization'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/router.rb:54:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/api/instance.rb:167:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/api/instance.rb:71:in `call!'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/grape-1.5.2/lib/grape/api/instance.rb:66:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:20:in `block in <class:Constraints>'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:49:in `serve'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/journey/router.rb:50:in `block in serve'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/journey/router.rb:32:in `each'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/journey/router.rb:32:in `serve'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:842:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/gitlab-experiment-0.7.1/lib/gitlab/experiment/middleware.rb:19:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/flipper-0.25.0/lib/flipper/middleware/memoizer.rb:72:in `memoized_call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/flipper-0.25.0/lib/flipper/middleware/memoizer.rb:37:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/elasticsearch_rack_middleware.rb:16:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/memory_report.rb:13:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/speedscope.rb:13:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/load_balancing/rack_middleware.rb:23:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/rails_queue_duration.rb:33:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/rack_middleware.rb:16:in `block in call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/web_transaction.rb:46:in `run'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/rack_middleware.rb:16:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/jira/middleware.rb:19:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/go.rb:20:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/etag_caching/middleware.rb:21:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/query_analyzer.rb:11:in `block in call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/database/query_analyzer.rb:37:in `within'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/query_analyzer.rb:11:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/batch-loader-2.0.1/lib/batch_loader/middleware.rb:11:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-attack-6.6.1/lib/rack/attack.rb:103:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/apollo_upload_server-2.1.0/lib/apollo_upload_server/middleware.rb:32:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/multipart.rb:178:in `block in call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/multipart.rb:63:in `with_open_files'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/multipart.rb:177:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-attack-6.6.1/lib/rack/attack.rb:127:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/manager.rb:36:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/manager.rb:34:in `catch'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/manager.rb:34:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/tempfile_reaper.rb:15:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/etag.rb:27:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/conditional_get.rb:40:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/head.rb:12:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/http/permissions_policy.rb:22:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/http/content_security_policy.rb:19:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/read_only/controller.rb:50:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/read_only.rb:18:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/session/abstract/id.rb:266:in `context'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/session/abstract/id.rb:260:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/cookies.rb:689:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/same_site_cookies.rb:27:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/callbacks.rb:98:in `run_callbacks'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/handle_malformed_strings.rb:21:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-rails-5.1.1/lib/sentry/rails/rescued_exception_interceptor.rb:12:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-ruby-core-5.1.1/lib/sentry/rack/capture_exceptions.rb:25:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-ruby-core-5.1.1/lib/sentry/hub.rb:58:in `with_scope'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-ruby-core-5.1.1/lib/sentry-ruby.rb:310:in `with_scope'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-ruby-core-5.1.1/lib/sentry/rack/capture_exceptions.rb:16:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/basic_health_check.rb:25:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/rack/logger.rb:37:in `call_app'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/rack/logger.rb:26:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/tagged_logging.rb:99:in `block in tagged'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/tagged_logging.rb:37:in `tagged'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/tagged_logging.rb:99:in `tagged'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/rack/logger.rb:26:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/handle_ip_spoof_attack_error.rb:25:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/request_context.rb:21:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/webhook_recursion_detection.rb:15:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/request_store-1.5.1/lib/request_store/middleware.rb:19:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/method_override.rb:24:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/runtime.rb:22:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-timeout-0.6.3/lib/rack/timeout/core.rb:148:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-timeout-0.6.3/lib/rack/timeout/support/timeout.rb:19:in `timeout'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-timeout-0.6.3/lib/rack/timeout/core.rb:147:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/config/initializers/fix_local_cache_middleware.rb:11:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/compressed_json.rb:37:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/rack_multipart_tempfile_factory.rb:19:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/sendfile.rb:110:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/sidekiq_web_static.rb:20:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/host_authorization.rb:142:in `call'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/requests_rack_middleware.rb:77:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/gitlab-labkit-0.29.0/lib/labkit/middleware/rack.rb:19:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/gitlab-labkit-0.29.0/lib/labkit/context.rb:36:in `with_context'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/gitlab-labkit-0.29.0/lib/labkit/middleware/rack.rb:18:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/middleware/request_id.rb:26:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/sentry-raven-3.1.2/lib/raven/integrations/rack.rb:51:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/engine.rb:539:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `public_send'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `method_missing'
  /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/middleware/release_env.rb:13:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/urlmap.rb:74:in `block in call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/urlmap.rb:58:in `each'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/rack-2.2.6.2/lib/rack/urlmap.rb:58:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/configuration.rb:252:in `call'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/request.rb:77:in `block in handle_request'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/thread_pool.rb:340:in `with_force_shutdown'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/request.rb:76:in `handle_request'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/server.rb:443:in `process_client'
  /opt/gitlab/embedded/lib/ruby/gems/2.7.0/gems/puma-5.6.5/lib/puma/thread_pool.rb:147:in `block in spawn_thread'

Output of checks

Results of GitLab environment info

Expand for output related to GitLab environment info
System information
System:   Debian 10
Proxy:    no
Current User: git
Using RVM:  no
Ruby Version: 2.7.7p221
Gem Version:  3.1.6
Bundler Version:2.3.15
Rake Version: 13.0.6
Redis Version:  6.2.8
Sidekiq Version:6.5.7
Go Version: unknown

GitLab information
Version:  15.8.0-ee
Revision: 1d89c23c9f9
Directory:  /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: PostgreSQL
DB Version: 12.12
URL:    https://gitlabhost.tld
HTTP Clone URL: https://gitlabhost.tld/some-group/some-project.git
SSH Clone URL:  git@gitlabhost.tld:some-group/some-project.git
Elasticsearch:  no
Geo:    yes
Geo node: Undefined
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:

GitLab Shell
Version:  14.15.0
Repository storages:
- default:  unix:/var/opt/gitlab/gitaly/gitaly.socket
GitLab Shell path:    /opt/gitlab/embedded/service/gitlab-shell

Workarounds

Do not use Windows share to store GitLab artifacts.

Edited by Alexandr Tanayno