Close file aof before renaming for windows

Windows does not allow for renaming files that are use.

fixes #211

thanks @icewukong
This commit is contained in:
Josh Baker 2017-08-10 18:34:22 -07:00
parent cd057088d9
commit bb7b6411b8
1 changed files with 3 additions and 3 deletions

View File

@ -263,15 +263,15 @@ func (c *Controller) aofshrink() {
// anything below this point is unrecoverable. just log and exit process
// back up the live aof, just in case of fatal error
if err := c.f.Close(); err != nil {
log.Fatalf("shink live aof close fatal operation: %v", err)
}
if err := os.Rename(path.Join(c.dir, "appendonly.aof"), path.Join(c.dir, "appendonly.bak")); err != nil {
log.Fatalf("shink backup fatal operation: %v", err)
}
if err := os.Rename(path.Join(c.dir, "shrink"), path.Join(c.dir, "appendonly.aof")); err != nil {
log.Fatalf("shink rename fatal operation: %v", err)
}
if err := c.f.Close(); err != nil {
log.Fatalf("shink live aof close fatal operation: %v", err)
}
c.f, err = os.OpenFile(path.Join(c.dir, "appendonly.aof"), os.O_CREATE|os.O_RDWR, 0600)
if err != nil {
log.Fatalf("shink openfile fatal operation: %v", err)