[VAULT-3226] Use os.rename on windows os (#12377)

* [VAULT-3226] Use os.rename on windows os

* [VAULT-3226] Add changelog
This commit is contained in:
Pratyoy Mukhopadhyay 2021-08-19 16:05:53 -07:00 committed by GitHub
parent 47d450a4b1
commit 5fda05adee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 2 deletions

3
changelog/12377.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note: bug
physical/raft: Fix safeio.Rename error when restoring snapshots on windows
```

View File

@ -9,6 +9,7 @@ import (
"math"
"os"
"path/filepath"
"runtime"
"strings"
"sync"
"time"
@ -456,7 +457,15 @@ func (s *BoltSnapshotSink) Close() error {
// Move the directory into place
newPath := strings.TrimSuffix(s.dir, tmpSuffix)
if err := safeio.Rename(s.dir, newPath); err != nil {
var err error
if runtime.GOOS != "windows" {
err = safeio.Rename(s.dir, newPath)
} else {
err = os.Rename(s.dir, newPath)
}
if err != nil {
s.logger.Error("failed to move snapshot into place", "error", err)
return err
}
@ -511,7 +520,11 @@ func (i *boltSnapshotInstaller) Install(filename string) error {
}
// Rename the snapshot to the FSM location
return safeio.Rename(i.filename, filename)
if runtime.GOOS != "windows" {
return safeio.Rename(i.filename, filename)
} else {
return os.Rename(i.filename, filename)
}
}
// snapshotName generates a name for the snapshot.