lib/db, lib/syncthing: Don't repair DB on upgrade, but on error (fixes #6917) (#6971)

This commit is contained in:
Simon Frei
2020-09-10 10:54:41 +02:00
committed by GitHub
parent c5c23ed10f
commit 08bebbe59b
9 changed files with 111 additions and 61 deletions
+8 -5
View File
@@ -4028,9 +4028,13 @@ func TestIssue6961(t *testing.T) {
fcfg.Type = config.FolderTypeReceiveOnly
fcfg.Devices = append(fcfg.Devices, config.FolderDeviceConfiguration{DeviceID: device2})
wcfg.SetFolder(fcfg)
m := setupModel(wcfg)
// defer cleanupModelAndRemoveDir(m, tfs.URI())
defer cleanupModel(m)
// Always recalc/repair when opening a fileset.
// db := db.NewLowlevel(backend.OpenMemory(), db.WithRecheckInterval(time.Millisecond))
db := db.NewLowlevel(backend.OpenMemory())
m := newModel(wcfg, myID, "syncthing", "dev", db, nil)
m.ServeBackground()
defer cleanupModelAndRemoveDir(m, tfs.URI())
m.ScanFolders()
name := "foo"
version := protocol.Vector{}.Update(device1.Short())
@@ -4066,14 +4070,13 @@ func TestIssue6961(t *testing.T) {
// Drop ther remote index, add some other file.
m.Index(device2, fcfg.ID, []protocol.FileInfo{{Name: "bar", RawInvalid: true, Sequence: 1}})
// Recalculate everything
// Pause and unpause folder to create new db.FileSet and thus recalculate everything
fcfg.Paused = true
waiter, err = wcfg.SetFolder(fcfg)
if err != nil {
t.Fatal(err)
}
waiter.Wait()
m.db.CheckRepair()
fcfg.Paused = false
waiter, err = wcfg.SetFolder(fcfg)
if err != nil {