mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
wal: add ErrFileNotFound and ErrIndexNotFound
This commit is contained in:
parent
7160b5ae26
commit
29f6d8a9e6
17
wal/wal.go
17
wal/wal.go
@ -42,10 +42,11 @@ const (
|
||||
)
|
||||
|
||||
var (
|
||||
ErrIDMismatch = errors.New("wal: unmatch id")
|
||||
ErrNotFound = errors.New("wal: file is not found")
|
||||
ErrCRCMismatch = errors.New("wal: crc mismatch")
|
||||
crcTable = crc32.MakeTable(crc32.Castagnoli)
|
||||
ErrIDMismatch = errors.New("wal: unmatch id")
|
||||
ErrFileNotFound = errors.New("wal: file not found")
|
||||
ErrIndexNotFound = errors.New("wal: index not found in file")
|
||||
ErrCRCMismatch = errors.New("wal: crc mismatch")
|
||||
crcTable = crc32.MakeTable(crc32.Castagnoli)
|
||||
)
|
||||
|
||||
// WAL is a logical repersentation of the stable storage.
|
||||
@ -107,14 +108,14 @@ func OpenAtIndex(dirpath string, index int64) (*WAL, error) {
|
||||
}
|
||||
names = checkWalNames(names)
|
||||
if len(names) == 0 {
|
||||
return nil, ErrNotFound
|
||||
return nil, ErrFileNotFound
|
||||
}
|
||||
|
||||
sort.Sort(sort.StringSlice(names))
|
||||
|
||||
nameIndex, ok := searchIndex(names, index)
|
||||
if !ok || !isValidSeq(names[nameIndex:]) {
|
||||
return nil, ErrNotFound
|
||||
return nil, ErrFileNotFound
|
||||
}
|
||||
|
||||
// open the wal files for reading
|
||||
@ -153,7 +154,7 @@ func OpenAtIndex(dirpath string, index int64) (*WAL, error) {
|
||||
}
|
||||
|
||||
// ReadAll reads out all records of the current WAL.
|
||||
// If it cannot read out the expected entry, it will return ErrNotFound.
|
||||
// If it cannot read out the expected entry, it will return ErrIndexNotFound.
|
||||
// After ReadAll, the WAL will be ready for appending new records.
|
||||
func (w *WAL) ReadAll() (id int64, state raftpb.HardState, ents []raftpb.Entry, err error) {
|
||||
rec := &walpb.Record{}
|
||||
@ -196,7 +197,7 @@ func (w *WAL) ReadAll() (id int64, state raftpb.HardState, ents []raftpb.Entry,
|
||||
}
|
||||
if w.enti < w.ri {
|
||||
state.Reset()
|
||||
return 0, state, nil, ErrNotFound
|
||||
return 0, state, nil, ErrIndexNotFound
|
||||
}
|
||||
|
||||
// close decoder, disable reading
|
||||
|
@ -111,8 +111,8 @@ func TestOpenAtIndex(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(emptydir)
|
||||
if _, err = OpenAtIndex(emptydir, 0); err != ErrNotFound {
|
||||
t.Errorf("err = %v, want %v", err, ErrNotFound)
|
||||
if _, err = OpenAtIndex(emptydir, 0); err != ErrFileNotFound {
|
||||
t.Errorf("err = %v, want %v", err, ErrFileNotFound)
|
||||
}
|
||||
}
|
||||
|
||||
@ -315,8 +315,8 @@ func TestRecoverAfterCut(t *testing.T) {
|
||||
w, err := OpenAtIndex(p, int64(i))
|
||||
if err != nil {
|
||||
if i <= 4 {
|
||||
if err != ErrNotFound {
|
||||
t.Errorf("#%d: err = %v, want %v", i, err, ErrNotFound)
|
||||
if err != ErrFileNotFound {
|
||||
t.Errorf("#%d: err = %v, want %v", i, err, ErrFileNotFound)
|
||||
}
|
||||
} else {
|
||||
t.Errorf("#%d: err = %v, want nil", i, err)
|
||||
@ -360,8 +360,8 @@ func TestOpenAtUncommittedIndex(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// commit up to index 0, try to read index 1
|
||||
if _, _, _, err := w.ReadAll(); err != ErrNotFound {
|
||||
t.Errorf("err = %v, want %v", err, ErrNotFound)
|
||||
if _, _, _, err := w.ReadAll(); err != ErrIndexNotFound {
|
||||
t.Errorf("err = %v, want %v", err, ErrIndexNotFound)
|
||||
}
|
||||
w.Close()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user