Skip to content
Snippets Groups Projects
Commit 0decf974 authored by Jacob Vosmaer (GitLab)'s avatar Jacob Vosmaer (GitLab)
Browse files

Handle EEXIST when finalizing git archive

parent 06632c75
No related branches found
No related tags found
1 merge request!70Handle EEXIST when finalizing git archive
Pipeline #
Loading
Loading
@@ -173,7 +173,11 @@ func finalizeCachedArchive(tempFile *os.File, archivePath string) error {
if err := tempFile.Close(); err != nil {
return err
}
return os.Link(tempFile.Name(), archivePath)
if err := os.Link(tempFile.Name(), archivePath); err != nil && !os.IsExist(err) {
return err
}
return nil
}
 
func parseBasename(basename string) (string, bool) {
Loading
Loading
package git
 
import (
"io/ioutil"
"testing"
)
 
Loading
Loading
@@ -27,3 +28,17 @@ func TestParseBasename(t *testing.T) {
}
}
}
func TestFinalizeArchive(t *testing.T) {
tempFile, err := ioutil.TempFile("", "gitlab-workhorse-test")
if err != nil {
t.Fatal(err)
}
defer tempFile.Close()
// Deliberately cause an EEXIST error: we know tempFile.Name() already exists
err = finalizeCachedArchive(tempFile, tempFile.Name())
if err != nil {
t.Fatalf("expected nil from finalizeCachedArchive, received %v", err)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment