in store/engine/raft/store.go [74:98]
func (ds *DataStore) loadSnapshotFromDisk() (*raftpb.Snapshot, error) {
if !fileutil.Exist(ds.snapshotDir) {
if err := os.MkdirAll(ds.snapshotDir, 0750); err != nil {
return nil, err
}
}
emptySnapshot := &raftpb.Snapshot{}
if !ds.walExists() {
return emptySnapshot, nil
}
snapshots, err := wal.ValidSnapshotEntries(logger.Get(), ds.walDir)
if err != nil {
return nil, err
}
latestSnapshot, err := ds.snapshotter.LoadNewestAvailable(snapshots)
if err != nil {
if errors.Is(err, snap.ErrNoSnapshot) {
return emptySnapshot, nil
}
return nil, err
}
return latestSnapshot, nil
}