[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:
parent
47d450a4b1
commit
5fda05adee
|
@ -0,0 +1,3 @@
|
||||||
|
```release-note: bug
|
||||||
|
physical/raft: Fix safeio.Rename error when restoring snapshots on windows
|
||||||
|
```
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
@ -456,7 +457,15 @@ func (s *BoltSnapshotSink) Close() error {
|
||||||
|
|
||||||
// Move the directory into place
|
// Move the directory into place
|
||||||
newPath := strings.TrimSuffix(s.dir, tmpSuffix)
|
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)
|
s.logger.Error("failed to move snapshot into place", "error", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -511,7 +520,11 @@ func (i *boltSnapshotInstaller) Install(filename string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rename the snapshot to the FSM location
|
// 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.
|
// snapshotName generates a name for the snapshot.
|
||||||
|
|
Loading…
Reference in New Issue