Browse Source

ctlv3: close snapshot file before rename (Windows)

sharat 9 years ago
parent
commit
fef6557f6c
1 changed files with 3 additions and 1 deletions
  1. 3 1
      etcdctl/ctlv3/command/snapshot_command.go

+ 3 - 1
etcdctl/ctlv3/command/snapshot_command.go

@@ -115,7 +115,7 @@ func snapshotSaveCommandFunc(cmd *cobra.Command, args []string) {
 
 
 	partpath := path + ".part"
 	partpath := path + ".part"
 	f, err := os.Create(partpath)
 	f, err := os.Create(partpath)
-	defer f.Close()
+
 	if err != nil {
 	if err != nil {
 		exiterr := fmt.Errorf("could not open %s (%v)", partpath, err)
 		exiterr := fmt.Errorf("could not open %s (%v)", partpath, err)
 		ExitWithError(ExitBadArgs, exiterr)
 		ExitWithError(ExitBadArgs, exiterr)
@@ -134,6 +134,8 @@ func snapshotSaveCommandFunc(cmd *cobra.Command, args []string) {
 
 
 	fileutil.Fsync(f)
 	fileutil.Fsync(f)
 
 
+	f.Close()
+
 	if rerr := os.Rename(partpath, path); rerr != nil {
 	if rerr := os.Rename(partpath, path); rerr != nil {
 		exiterr := fmt.Errorf("could not rename %s to %s (%v)", partpath, path, rerr)
 		exiterr := fmt.Errorf("could not rename %s to %s (%v)", partpath, path, rerr)
 		ExitWithError(ExitIO, exiterr)
 		ExitWithError(ExitIO, exiterr)