Windows 10 runner fails to download artifacts when path length would exceed 331 characters
Summary
Customer reports running into a limit with file name lengths when pulling artifacts down onto a Windows 10 Enterprise LTSC (2021) runner. They have LongPathsEnabled
enabled and are able to copy/make files with long paths manually UI, but when they download artifacts they see
WARNING: ci-cd-pipeline/mdm/lmcpgen-out/cpp/DigitalTestEnvironmentVehicleCommands/DigitalTestEnvironmentVehicleCommandsAirspeedData.cpp: chtimes ci-cd-pipeline/mdm/lmcpgen-out/cpp/DigitalTestEnvironmentVehicleCommands/DigitalTestEnvironmentVehicleCommandsAirspeedData.cpp: The system cannot find the path specified. (suppressing repeats)
On disk, this is in the runner's home with the full path of the namespace and project. The paths that fail are 335 characters long, while ones at 331 succeed.
PSVersion 5.1.19041.1682
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.1682
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Steps to reproduce
Example Project
Current config.toml
:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Windows Shared Gitlab Runner"
url = "https://[REDACTED]/"
token = "(token value)"
executor = "shell"
shell = "powershell"
environment = ["GIT_SSL_NO_VERIFY=true"]
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
What is the current bug behavior?
What is the expected correct behavior?
Relevant logs and/or screenshots
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)