mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge 3815ab0ce9d760d6282607cf75b45685890d0859 into c86c93ca2951338115159dcdd20711603044e1f1
This commit is contained in:
commit
c1163a9299
@ -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
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user