diff --git a/repo/maintenance/cleanup_logs.go b/repo/maintenance/cleanup_logs.go index cb5982cb1..ad1930c3f 100644 --- a/repo/maintenance/cleanup_logs.go +++ b/repo/maintenance/cleanup_logs.go @@ -69,9 +69,9 @@ func CleanupLogs(ctx context.Context, rep repo.DirectRepositoryWriter, opt LogRe deletePosition := len(allLogBlobs) for i, bm := range allLogBlobs { - retainedSize += maintenancestats.ToUint64(bm.Length) + bmlen := maintenancestats.ToUint64(bm.Length) - if opt.MaxTotalSize > 0 && retainedSize > uint64(opt.MaxTotalSize) { + if opt.MaxTotalSize > 0 && retainedSize+bmlen > uint64(opt.MaxTotalSize) { deletePosition = i break } @@ -85,6 +85,8 @@ func CleanupLogs(ctx context.Context, rep repo.DirectRepositoryWriter, opt LogRe deletePosition = i break } + + retainedSize += bmlen } toDelete := allLogBlobs[deletePosition:] diff --git a/repo/maintenancestats/typeconversion.go b/repo/maintenancestats/typeconversion.go index 4e1d692fe..1cb5b2797 100644 --- a/repo/maintenancestats/typeconversion.go +++ b/repo/maintenancestats/typeconversion.go @@ -6,7 +6,7 @@ "golang.org/x/time/rate" ) -var limit = rate.Sometimes{First: 10} //nolint:mnd +var negativeValueWarningLimit = rate.Sometimes{First: 10} //nolint:mnd // ToUint64 converts v from a signed integer type T to uint64 while checking that // the value is non-negative. It returns 0 for negative values. @@ -15,7 +15,7 @@ func ToUint64[T int8 | int16 | int32 | int | int64](v T) uint64 { return uint64(v) } - limit.Do(func() { + negativeValueWarningLimit.Do(func() { log.Println("warning, converting negative value to uint64:", v) }) diff --git a/repo/maintenancestats/typconversion_test.go b/repo/maintenancestats/typeconversion_test.go similarity index 100% rename from repo/maintenancestats/typconversion_test.go rename to repo/maintenancestats/typeconversion_test.go