mirror of https://github.com/helm/helm
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dependabot/go_modules/google.golang.org/grpc-1.79.3
dependabot/go_modules/main/k8s-io-dad96f7a66
main
dependabot/go_modules/main/golang.org/x/crypto-0.49.0
dependabot/go_modules/main/golang.org/x/text-0.35.0
dependabot/go_modules/dev-v3/golang.org/x/crypto-0.49.0
release-3.20
release-4.1
dependabot/go_modules/dev-v3/golang.org/x/term-0.41.0
dependabot/go_modules/dev-v3/golang.org/x/text-0.35.0
dependabot/go_modules/main/k8s.io/klog/v2-2.140.0
dependabot/go_modules/main/github.com/ProtonMail/go-crypto-1.4.0
dependabot/go_modules/dev-v3/k8s.io/klog/v2-2.140.0
dependabot/go_modules/dev-v3/k8s-io-dad96f7a66
dev-v3
dependabot/github_actions/main/actions/setup-go-6.3.0
release-3.19
release-4.0
copilot/backport-reflect-pointer-change
gjenkins8-patch-2
release-3.18
release-3.17
revert-toml-change
revert-13534-dev-v3-12987
add-lfx-insights
release-3.16
revert-11726-fixDepUpPerformance
release-3.15
dependabot/go_modules/k8s-io-4a36690ef2
release-3.14
release-3.13
release-3.12
release-3.11
release-3.10
Release
release-3.9
release-3.8
release-3.7
release-3.6
release-3.6.2
release-3.6.1
release-3.5
release-3.4
add-codeql
dev-v2
release-2.17
release-3.3
release-2.16
release-3.2
release-3.1
release-3.0
release-2.15
release-v3.0.0-beta.4
release-2.14
release-2.13
release-2.12
release-2.11
release-2.10
feat-v3/event-emitter-lua
release-2.9
release-2.8
release-2.7
release-2.6
release-2.5
release-2.4
release-2.3
release-2.2
release-2.1
release-2.0
kube-update-test
release-v1.2.1
v3.20.1
v4.1.3
v4.1.2
v4.1.1
v3.20.0
v4.1.0
v3.19.5
v4.0.5
v3.20.0-rc.1
v4.1.0-rc.1
v4.0.4
v3.19.4
v4.0.2
v3.19.3
v4.0.1
v3.19.2
v4.0.0
v3.19.1
v4.0.0-rc.1
v4.0.0-beta.2
v4.0.0-beta.1
v3.19.0
v3.19.0-rc.1
v4.0.0-alpha.1
v3.18.6
v3.18.5
v3.17.4
v3.18.4
v3.18.3
v3.18.2
v3.18.1
v3.18.0
v3.18.0-rc.2
v3.18.0-rc.1
v3.17.3
v3.17.2
v3.17.1
v3.17.0
v3.17.0-rc.1
v3.16.4
v3.16.3
v3.16.2
v3.16.1
v3.16.0
v3.16.0-rc.1
v3.15.4
v3.15.3
v3.15.2
v3.15.1
v3.15.0
v3.15.0-rc.2
v3.15.0-rc.1
v3.14.4
v3.14.3
v3.14.2
v3.14.1
v3.14.0
v3.14.0-rc.1
v3.13.3
v3.13.2
v3.13.1
v3.13.0
v3.13.0-rc.1
v3.12.3
v3.12.2
v3.12.1
v3.12.0
v3.12.0-rc.1
v3.11.3
v3.11.2
v3.12.0-dev.1
v3.11.1
v3.11.0
v3.11.0-rc.2
v3.11.0-rc.1
v3.10.3
v3.10.2
v3.10.1
v3.10.0
v3.10.0-rc.1
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.9.0-rc.1
v3.8.2
v3.8.1
v3.8.0
v3.8.0-rc.2
v3.8.0-rc.1
v3.7.2
v3.7.1
v3.7.0
v3.7.0-rc.3
v3.7.0-rc.2
v3.7.0-rc.1
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.6.0-rc.1
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.5.0-rc.2
v3.5.0-rc.1
v3.4.2
v3.4.1
v3.4.0
v2.17.0
v3.4.0-rc.1
v2.17.0-rc.1
v3.3.4
v2.16.12
v3.3.3
v2.16.11
v3.3.2
v3.3.1
v2.16.10
v3.3.0
v3.3.0-rc.2
v3.3.0-rc.1
v2.16.9
v3.2.4
v2.16.8
v3.2.3
v3.2.2
v3.2.1
v2.16.7
v3.1.3
v3.2.0
v3.2.0-rc.1
v2.16.6
v2.16.5
v2.16.4
v3.1.2
v3.1.1
v2.16.3
v2.16.2
v3.1.0
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc.1
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.16.1
v3.0.0-rc.4
v3.0.0-rc.3
v2.16.0
v3.0.0-rc.2
v2.16.0-rc.2
v2.16.0-rc.1
v3.0.0-rc.1
v2.15.2
v2.15.1
v3.0.0-beta.5
v2.15.0
v2.15.0-rc.2
v2.15.0-rc.1
v3.0.0-beta.4
v3.0.0-beta.3
v3.0.0-beta.2
v3.0.0-beta.1
v2.14.3
v3.0.0-alpha.2
v2.14.2
v2.14.1
v3.0.0-alpha.1
v2.14.0
v2.14.0-rc.2
v2.14.0-rc.1
v2.13.1
v2.13.1-rc.1
v2.13.0
v2.13.0-rc.2
v2.13.0-rc.1
v2.12.3
v2.12.2
v2.12.1
v2.12.0
v2.12.0-rc.2
v2.12.0-rc.1
v2.11.0
v2.11.0-rc.4
v2.11.0-rc.3
v2.11.0-rc.2
v2.11.0-rc.1
v2.10.0
v2.10.0-rc.3
v2.10.0-rc.2
v2.10.0-rc.1
v2.9.1
v2.9.0
v2.9.0-rc5
v2.9.0-rc4
v2.9.0-rc3
v2.9.0-rc2
v2.9.0-rc1
v2.8.2
v2.8.2-rc1
v2.8.1
v2.8.0
v2.8.0-rc.1
v2.7.2
v2.7.1
v2.7.0
v2.7.0-rc1
v2.6.2
v2.6.1
v2.6.0
v2.5.1
v2.5.0
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
1.999.0
v1.0
v1.1
v1.2
v1.2.1
v2.0.0
v2.0.0-alpha.1
v2.0.0-alpha.2
v2.0.0-alpha.3
v2.0.0-alpha.4
v2.0.0-alpha.5
v2.0.0-beta.1
v2.0.0-beta.2
v2.0.0-rc.1
v2.0.0-rc.2
v2.0.1
v2.0.2
v2.1.0
v2.1.1
v2.1.2
v2.1.3
v2.2.0
v2.2.1
v2.2.2
v2.2.3
${ noResults }
When multiple processes try to download the same chart version
concurrently (e.g., via Terraform), they can race to write the
destination file. On Windows, this results in 'Access Denied'
errors because the file cannot be renamed while another process
has a handle to the destination.
This commit introduces 'PlatformAtomicWriteFile' to the fileutil
package. On Unix-like systems, it simply delegates to AtomicWriteFile,
maintaining existing behavior. On Windows, it coordinates writes using
a lock file (.lock). It acquires the lock, then performs the atomic
write.
Crucially, this implementation ensures that existing files are
overwritten (rather than skipped). This ensures that if a chart is
republished with the same version, the local cache is correctly updated,
preventing stale data issues.
Fixes #31633
Signed-off-by: Orgad Shaneh <orgad.shaneh@audiocodes.com>
(cherry picked from commit
|
1 week ago | |
|---|---|---|
| .. | ||
| fileutil.go | Updating to helm.sh/helm/v4 | 1 year ago |
| fileutil_test.go | fix(downloader): safely handle concurrent file writes on Windows | 1 week ago |
| fileutil_unix.go | fix(downloader): safely handle concurrent file writes on Windows | 1 week ago |
| fileutil_windows.go | fix(downloader): safely handle concurrent file writes on Windows | 1 week ago |