diff --git a/server/storage/wal/wal.go b/server/storage/wal/wal.go index aa68a1a73ce4..f1d1374174b9 100644 --- a/server/storage/wal/wal.go +++ b/server/storage/wal/wal.go @@ -377,9 +377,12 @@ func selectWALFiles(lg *zap.Logger, dirpath string, snap walpb.Snapshot) ([]stri } nameIndex, ok := searchIndex(lg, names, snap.Index) - if !ok || !isValidSeq(lg, names[nameIndex:]) { - err = ErrFileNotFound - return nil, -1, err + if !ok { + return nil, -1, fmt.Errorf("wal: file not found which matches the snapshot index '%d'", snap.Index) + } + + if !isValidSeq(lg, names[nameIndex:]) { + return nil, -1, fmt.Errorf("wal: file seq (starting from %d) doesn't increase continuously", nameIndex) } return names, nameIndex, nil diff --git a/server/storage/wal/wal_test.go b/server/storage/wal/wal_test.go index e988bb4e5ce9..f1aaa6d38649 100644 --- a/server/storage/wal/wal_test.go +++ b/server/storage/wal/wal_test.go @@ -25,6 +25,7 @@ import ( "path/filepath" "reflect" "regexp" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -539,8 +540,8 @@ func TestRecoverAfterCut(t *testing.T) { w, err := Open(zaptest.NewLogger(t), p, walpb.Snapshot{Index: uint64(i), Term: 1}) if err != nil { if i <= 4 { - if err != ErrFileNotFound { - t.Errorf("#%d: err = %v, want %v", i, err, ErrFileNotFound) + if !strings.Contains(err.Error(), "doesn't increase continuously") { + t.Errorf("#%d: err = %v isn't expected, want: '* doesn't increase continuously'", i, err) } } else { t.Errorf("#%d: err = %v, want nil", i, err)