fix(pkg/storage): If storage.Create fails to clean up recent release versions, return an error

Previously, storage.Create was ignoring the error. This meant that a user that
relied on the recent release version cleanup would not be notified if that
cleanup failed, and release versions could grow without bound.

Closes #9145

Signed-off-by: Daniel Lipovetsky <dlipovetsky@d2iq.com>
pull/9131/head
Daniel Lipovetsky 4 years ago
parent 8c28da6567
commit 00cf10d360
No known key found for this signature in database
GPG Key ID: 559B3DEDDDF8FF82

@ -61,7 +61,10 @@ func (s *Storage) Create(rls *rspb.Release) error {
s.Log("creating release %q", makeKey(rls.Name, rls.Version))
if s.MaxHistory > 0 {
// Want to make space for one more release.
s.removeLeastRecent(rls.Name, s.MaxHistory-1)
if err := s.removeLeastRecent(rls.Name, s.MaxHistory-1); err != nil &&
!errors.Is(err, driver.ErrReleaseNotFound) {
return err
}
}
return s.Driver.Create(makeKey(rls.Name, rls.Version), rls)
}

Loading…
Cancel
Save