wal : wal.Verify defer close the opened WAL files
wal.Verify() : The opened WAL files are not closed in error cases. Fixed by adding a
defer.
@@ -554,6 +554,11 @@ func Verify(lg *zap.Logger, walDir string, snap walpb.Snapshot) error {
if err != nil {
return err
}
+ defer func() {
+ if closer != nil {
+ closer()
+ }
+ }()
// create a new decoder from the readers on the WAL files
decoder := newDecoder(rs...)
@@ -591,10 +596,6 @@ func Verify(lg *zap.Logger, walDir string, snap walpb.Snapshot) error {
}
}
- if closer != nil {
- closer()
- }
-
// We do not have to read out all the WAL entries
// as the decoder is opened in read mode.
if err != io.EOF && err != io.ErrUnexpectedEOF {
