Manager: handle job deletion errors more uniformly

Some error cases were returned, others were logged AND returned. Now all
errors are just returned, and the caller always logs them.
This commit is contained in:
Sybren A. Stüvel 2025-03-20 13:40:16 +01:00
parent f1de595acc
commit 44470b892b

View File

@ -157,7 +157,13 @@ func (s *Service) Run(ctx context.Context) {
case <-ctx.Done(): case <-ctx.Done():
return return
case jobUUID := <-s.queue: case jobUUID := <-s.queue:
s.deleteJob(ctx, jobUUID) err := s.deleteJob(ctx, jobUUID)
if err != nil {
log.Error().
AnErr("cause", err).
Str("job", jobUUID).
Msg("job deleter: could not delete job")
}
if len(s.queue) == 0 { if len(s.queue) == 0 {
waitTime = 100 * time.Millisecond waitTime = 100 * time.Millisecond
@ -210,19 +216,17 @@ func (s *Service) deleteJob(ctx context.Context, jobUUID string) error {
logger.Debug().Msg("job deleter: starting job deletion") logger.Debug().Msg("job deleter: starting job deletion")
err := s.deleteShamanCheckout(ctx, logger, jobUUID) err := s.deleteShamanCheckout(ctx, logger, jobUUID)
if err != nil { if err != nil {
return err return fmt.Errorf("remove Shaman checkout: %w", err)
} }
logger.Debug().Msg("job deleter: removing logs, last-rendered images, etc.") logger.Debug().Msg("job deleter: removing logs, last-rendered images, etc.")
if err := s.storage.RemoveJobStorage(ctx, jobUUID); err != nil { if err := s.storage.RemoveJobStorage(ctx, jobUUID); err != nil {
logger.Error().Err(err).Msg("job deleter: error removing job logs, job deletion aborted") return fmt.Errorf("remove job logs: %w", err)
return err
} }
logger.Debug().Msg("job deleter: removing job from database") logger.Debug().Msg("job deleter: removing job from database")
if err := s.persist.DeleteJob(ctx, jobUUID); err != nil { if err := s.persist.DeleteJob(ctx, jobUUID); err != nil {
logger.Error().Err(err).Msg("job deleter: unable to remove job from database") return fmt.Errorf("remove job from database: %w", err)
return err
} }
// Broadcast that this job was deleted. This only contains the UUID and the // Broadcast that this job was deleted. This only contains the UUID and the