From 3815ab0ce9d760d6282607cf75b45685890d0859 Mon Sep 17 00:00:00 2001 From: fykaa Date: Wed, 29 May 2024 16:06:42 +0530 Subject: [PATCH] etcdutl: include for lastsnapshot Signed-off-by: fykaa --- etcdutl/etcdutl/migrate_command.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/etcdutl/etcdutl/migrate_command.go b/etcdutl/etcdutl/migrate_command.go index 2db726493..4880ae935 100644 --- a/etcdutl/etcdutl/migrate_command.go +++ b/etcdutl/etcdutl/migrate_command.go @@ -95,11 +95,11 @@ func (o *migrateOptions) Config() (*migrateConfig, error) { c.be = backend.NewDefaultBackend(GetLogger(), dbPath) walPath := datadir.ToWALDir(o.dataDir) - lastSnapshot, err := getLastSnapshotIndex(walPath) + lastSnapshot, err := getLastSnapshot(c.lg, walPath) if err != nil { - return nil, fmt.Errorf(`failed to find last snapshot: %v`, err) + c.lg.Warn("failed to find last snapshot, falling back to beginning of wal", zap.Error(err)) } - w, err := wal.OpenForRead(c.lg, walPath, walpb.Snapshot{Index: lastSnapshot}) + w, err := wal.OpenForRead(c.lg, walPath, lastSnapshot) if err != nil { return nil, fmt.Errorf(`failed to open wal: %v`, err) } @@ -161,15 +161,13 @@ func storageVersionToString(ver *semver.Version) string { return fmt.Sprintf("%d.%d", ver.Major, ver.Minor) } -func getLastSnapshotIndex(walPath string) (uint64, error) { - walSnaps, err := wal.ValidSnapshotEntries(nil, walPath) +func getLastSnapshot(lg *zap.Logger, walPath string) (walpb.Snapshot, error) { + walSnaps, err := wal.ValidSnapshotEntries(lg, walPath) if err != nil { - return 0, err + return walpb.Snapshot{}, err } if len(walSnaps) == 0 { - return 0, fmt.Errorf("no valid snapshot entries found") + return walpb.Snapshot{}, fmt.Errorf("no valid snapshot entries found") } - - snapshot := walSnaps[len(walSnaps)-1] - return snapshot.Index, nil + return walSnaps[len(walSnaps)-1], nil }