• Bryan C. Mills's avatar
    cmd/go/internal/modfetch: lock files and directories · 04e12a5b
    Bryan C. Mills authored
    We employ the following new locking mechanisms:
    
    • Zip files and list files within the module cache are written using
      atomic renames of temporary files, so that GOPROXY servers reading
      from the cache will never serve incomplete content.
    
    • A lock file for each module version guards downloading and extraction of
      (immutable) module contents.
    
    • A lock file alongside each version list (named 'list.lock')
      guards updates to the list.
    
    • A single lock file in the module cache guards updates to all go.sum
      files. The go.sum files themselves are written using an atomic
      rename to ensure that we never accidentally discard existing sums.
    
    Updates #26794
    
    RELNOTE=yes
    
    Change-Id: I16ef8b06ee4bd7b94d0c0a6f5d17e1cecc379076
    Reviewed-on: https://go-review.googlesource.com/c/146382
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    Reviewed-by: default avatarRuss Cox <rsc@golang.org>
    04e12a5b
unzip.go 4.18 KB