From 37442babfb0309db58cc43608a6071c6acb61727 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Tue, 9 Feb 2021 06:44:39 -0700 Subject: [PATCH] Revert validation mismatch temp file persistence This commit reverts 4e469f8 which was used for debugging the validation stall corruption issue. It can cause the disk to fill with temporary files though so it is being reverted. --- db.go | 13 ++----------- db_test.go | 8 ++++---- replica.go | 3 ++- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/db.go b/db.go index 65feea4..fafdb62 100644 --- a/db.go +++ b/db.go @@ -1625,7 +1625,7 @@ func restoreWAL(ctx context.Context, r Replica, generation string, index int, db // unable to checkpoint during this time. // // If dst is set, the database file is copied to that location before checksum. -func (db *DB) CRC64(dst string) (uint64, Pos, error) { +func (db *DB) CRC64() (uint64, Pos, error) { db.mu.Lock() defer db.mu.Unlock() @@ -1655,16 +1655,7 @@ func (db *DB) CRC64(dst string) (uint64, Pos, error) { } pos.Offset = 0 - // Copy file, if dst specified. - checksumPath := db.Path() - if dst != "" { - if err := copyFile(dst, db.Path()); err != nil { - return 0, Pos{}, err - } - checksumPath = dst - } - - chksum, err := checksumFile(checksumPath) + chksum, err := checksumFile(db.Path()) if err != nil { return 0, pos, err } diff --git a/db_test.go b/db_test.go index 717682d..7227cfb 100644 --- a/db_test.go +++ b/db_test.go @@ -118,7 +118,7 @@ func TestDB_CRC64(t *testing.T) { t.Run("ErrNotExist", func(t *testing.T) { db := MustOpenDB(t) defer MustCloseDB(t, db) - if _, _, err := db.CRC64(""); !os.IsNotExist(err) { + if _, _, err := db.CRC64(); !os.IsNotExist(err) { t.Fatalf("unexpected error: %#v", err) } }) @@ -131,7 +131,7 @@ func TestDB_CRC64(t *testing.T) { t.Fatal(err) } - chksum0, _, err := db.CRC64("") + chksum0, _, err := db.CRC64() if err != nil { t.Fatal(err) } @@ -139,7 +139,7 @@ func TestDB_CRC64(t *testing.T) { // Issue change that is applied to the WAL. Checksum should not change. if _, err := sqldb.Exec(`CREATE TABLE t (id INT);`); err != nil { t.Fatal(err) - } else if chksum1, _, err := db.CRC64(""); err != nil { + } else if chksum1, _, err := db.CRC64(); err != nil { t.Fatal(err) } else if chksum0 == chksum1 { t.Fatal("expected different checksum event after WAL change") @@ -150,7 +150,7 @@ func TestDB_CRC64(t *testing.T) { t.Fatal(err) } - if chksum2, _, err := db.CRC64(""); err != nil { + if chksum2, _, err := db.CRC64(); err != nil { t.Fatal(err) } else if chksum0 == chksum2 { t.Fatal("expected different checksums after checkpoint") diff --git a/replica.go b/replica.go index f9b2726..6ae8f3b 100644 --- a/replica.go +++ b/replica.go @@ -1049,11 +1049,12 @@ func ValidateReplica(ctx context.Context, r Replica) error { if err != nil { return err } + defer os.RemoveAll(tmpdir) // Compute checksum of primary database under lock. This prevents a // sync from occurring and the database will not be written. primaryPath := filepath.Join(tmpdir, "primary") - chksum0, pos, err := db.CRC64(primaryPath) + chksum0, pos, err := db.CRC64() if err != nil { return fmt.Errorf("cannot compute checksum: %w", err) }