[XAPID-377] Fixed a bug in crash recovery and how we write to a file
diff --git a/buffering_manager.go b/buffering_manager.go index ceb011e..243409d 100644 --- a/buffering_manager.go +++ b/buffering_manager.go
@@ -114,7 +114,6 @@ } } -//TODO: implement 4 digit hext method func getRandomHex() string { buff := make([]byte, 2) rand.Read(buff) @@ -141,6 +140,7 @@ (fw.bw).WriteString("\n") } fw.bw.Flush() + fw.gw.Flush() } func closeGzipFile(fw fileWriter) {
diff --git a/crash_recovery.go b/crash_recovery.go index 971270d..f6793fd 100644 --- a/crash_recovery.go +++ b/crash_recovery.go
@@ -134,23 +134,23 @@ scanner := bufio.NewScanner(gzReader) // Create new file to copy complete records from partial file and upload only a complete file - recoveredFile, err := os.Create(recoveredFilePath) + recoveredFile, err := os.OpenFile(recoveredFilePath, os.O_WRONLY|os.O_CREATE, os.ModePerm) if err != nil { log.Errorf("Cannot create recovered file: %s", recoveredFilePath) return } defer recoveredFile.Close() - bufWriter := bufio.NewWriter(recoveredFile) - defer bufWriter.Flush() - - gzWriter := gzip.NewWriter(bufWriter) + gzWriter := gzip.NewWriter(recoveredFile) defer gzWriter.Close() - for scanner.Scan() { - gzWriter.Write(scanner.Bytes()) - } + bufWriter := bufio.NewWriter(gzWriter) + defer bufWriter.Flush() + for scanner.Scan() { + bufWriter.Write(scanner.Bytes()) + bufWriter.WriteString("\n") + } if err := scanner.Err(); err != nil { log.Errorf("Error while scanning partial file: %v", err) return