Commit 47beb803 authored by Michael Taufen's avatar Michael Taufen

fsync config checkpoint files after writing

parent 42481988
...@@ -83,6 +83,10 @@ func ReplaceFile(fs utilfs.Filesystem, path string, data []byte) error { ...@@ -83,6 +83,10 @@ func ReplaceFile(fs utilfs.Filesystem, path string, data []byte) error {
if _, err := tmpFile.Write(data); err != nil { if _, err := tmpFile.Write(data); err != nil {
return err return err
} }
// sync file, to ensure it's written in case a hard reset happens
if err := tmpFile.Sync(); err != nil {
return err
}
if err := tmpFile.Close(); err != nil { if err := tmpFile.Close(); err != nil {
return err return err
} }
......
...@@ -101,6 +101,11 @@ func (file *defaultFile) Write(b []byte) (n int, err error) { ...@@ -101,6 +101,11 @@ func (file *defaultFile) Write(b []byte) (n int, err error) {
return file.file.Write(b) return file.file.Write(b)
} }
// Sync via os.File.Sync
func (file *defaultFile) Sync() error {
return file.file.Sync()
}
// Close via os.File.Close // Close via os.File.Close
func (file *defaultFile) Close() error { func (file *defaultFile) Close() error {
return file.file.Close() return file.file.Close()
......
...@@ -107,6 +107,11 @@ func (file *fakeFile) Write(b []byte) (n int, err error) { ...@@ -107,6 +107,11 @@ func (file *fakeFile) Write(b []byte) (n int, err error) {
return file.file.Write(b) return file.file.Write(b)
} }
// Sync via afero.File.Sync
func (file *fakeFile) Sync() error {
return file.file.Sync()
}
// Close via afero.File.Close // Close via afero.File.Close
func (file *fakeFile) Close() error { func (file *fakeFile) Close() error {
return file.file.Close() return file.file.Close()
......
...@@ -45,5 +45,6 @@ type File interface { ...@@ -45,5 +45,6 @@ type File interface {
// for now, the only os.File methods used are those below, add more as necessary // for now, the only os.File methods used are those below, add more as necessary
Name() string Name() string
Write(b []byte) (n int, err error) Write(b []byte) (n int, err error)
Sync() error
Close() error Close() error
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment