Merge 3815ab0ce9d760d6282607cf75b45685890d0859 into c86c93ca2951338115159dcdd20711603044e1f1

This commit is contained in:
Faeka Ansari 2024-09-26 22:00:05 +01:00 committed by GitHub
commit c1163a9299
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -95,7 +95,11 @@ func (o *migrateOptions) Config() (*migrateConfig, error) {
c.be = backend.NewDefaultBackend(GetLogger(), dbPath)
walPath := datadir.ToWALDir(o.dataDir)
w, err := wal.OpenForRead(c.lg, walPath, walpb.Snapshot{})
lastSnapshot, err := getLastSnapshot(c.lg, walPath)
if err != nil {
c.lg.Warn("failed to find last snapshot, falling back to beginning of wal", zap.Error(err))
}
w, err := wal.OpenForRead(c.lg, walPath, lastSnapshot)
if err != nil {
return nil, fmt.Errorf(`failed to open wal: %v`, err)
}
@ -156,3 +160,14 @@ func migrateForce(lg *zap.Logger, tx backend.BatchTx, target *semver.Version) {
func storageVersionToString(ver *semver.Version) string {
return fmt.Sprintf("%d.%d", ver.Major, ver.Minor)
}
func getLastSnapshot(lg *zap.Logger, walPath string) (walpb.Snapshot, error) {
walSnaps, err := wal.ValidSnapshotEntries(lg, walPath)
if err != nil {
return walpb.Snapshot{}, err
}
if len(walSnaps) == 0 {
return walpb.Snapshot{}, fmt.Errorf("no valid snapshot entries found")
}
return walSnaps[len(walSnaps)-1], nil
}