mirror of
https://github.com/helm/helm.git
synced 2026-02-19 02:39:04 -05:00
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> |
||
|---|---|---|
| .. | ||
| fileutil.go | ||
| fileutil_test.go | ||
| fileutil_unix.go | ||
| fileutil_windows.go | ||