Browse Source

lib/db: Be more lenient during migration (fixes #6397) (#6398)

Jakob Borg 6 years ago
parent
commit
db02545ef3
1 changed files with 10 additions and 1 deletions
  1. 10 1
      lib/db/schemaupdater.go

+ 10 - 1
lib/db/schemaupdater.go

@@ -452,7 +452,16 @@ func (db *schemaUpdater) updateSchemato9(prev int) error {
 	metas := make(map[string]*metadataTracker)
 	for it.Next() {
 		intf, err := t.unmarshalTrunc(it.Value(), false)
-		if err != nil {
+		if backend.IsNotFound(err) {
+			// Unmarshal error due to missing parts (block list), probably
+			// due to a bad migration in a previous RC. Drop this key, as
+			// getFile would anyway return this as a "not found" in the
+			// normal flow of things.
+			if err := t.Delete(it.Key()); err != nil {
+				return err
+			}
+			continue
+		} else if err != nil {
 			return err
 		}
 		fi := intf.(protocol.FileInfo)