Add more error handling

This commit is contained in:
Alexander Neumann
2021-01-30 19:35:46 +01:00
parent aef3658a5f
commit 0858fbf6aa
23 changed files with 91 additions and 36 deletions

View File

@@ -62,11 +62,11 @@ func TestBackendListRetry(t *testing.T) {
// fail during first retry, succeed during second
retry++
if retry == 1 {
fn(restic.FileInfo{Name: ID1})
_ = fn(restic.FileInfo{Name: ID1})
return errors.New("test list error")
}
fn(restic.FileInfo{Name: ID1})
fn(restic.FileInfo{Name: ID2})
_ = fn(restic.FileInfo{Name: ID1})
_ = fn(restic.FileInfo{Name: ID2})
return nil
},
}

View File

@@ -265,9 +265,15 @@ func visitDirs(ctx context.Context, dir string, fn func(restic.FileInfo) error)
if err != nil {
return err
}
defer d.Close()
sub, err := d.Readdirnames(-1)
if err != nil {
// ignore subsequent errors
_ = d.Close()
return err
}
err = d.Close()
if err != nil {
return err
}
@@ -286,9 +292,15 @@ func visitFiles(ctx context.Context, dir string, fn func(restic.FileInfo) error)
if err != nil {
return err
}
defer d.Close()
sub, err := d.Readdir(-1)
if err != nil {
// ignore subsequent errors
_ = d.Close()
return err
}
err = d.Close()
if err != nil {
return err
}

View File

@@ -30,7 +30,9 @@ func TestNoSpacePermanent(t *testing.T) {
be, err := Open(context.Background(), Config{Path: dir})
rtest.OK(t, err)
defer be.Close()
defer func() {
rtest.OK(t, be.Close())
}()
h := restic.Handle{Type: restic.ConfigFile}
err = be.Save(context.Background(), h, nil)

View File

@@ -52,7 +52,7 @@ func DefaultLoad(ctx context.Context, h restic.Handle, length int, offset int64,
}
err = fn(rd)
if err != nil {
rd.Close() // ignore secondary errors closing the reader
_ = rd.Close() // ignore secondary errors closing the reader
return err
}
return rd.Close()