Skip to content

Commit 7e46762

Browse files
committedNov 27, 2015
Fix maybeGC trigger condition
License: MIT Signed-off-by: rht <rhtbot@gmail.com>
1 parent 20b06a4 commit 7e46762

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed
 

‎core/corerepo/gc.go

+13-8
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,13 @@ func (gc *GC) maybeGC(ctx context.Context, offset uint64) error {
174174
return err
175175
}
176176

177-
if storage+offset > gc.StorageMax {
178-
err := ErrMaxStorageExceeded
179-
log.Error(err)
180-
return err
181-
}
182-
183177
if storage+offset > gc.StorageGC {
178+
if storage+offset > gc.StorageMax {
179+
log.Warningf("pre-GC: %s", ErrMaxStorageExceeded)
180+
}
181+
184182
// Do GC here
185-
log.Info("Starting repo GC...")
183+
log.Info("Watermark exceeded. Starting repo GC...")
186184
defer log.EventBegin(ctx, "repoGC").Done()
187185
// 1 minute is sufficient for ~1GB unlink() blocks each of 100kb in SSD
188186
_ctx, cancel := context.WithTimeout(ctx, time.Duration(gc.SlackGB)*time.Minute)
@@ -196,7 +194,14 @@ func (gc *GC) maybeGC(ctx context.Context, offset uint64) error {
196194
return err
197195
}
198196
log.Infof("Repo GC done. Released %s\n", humanize.Bytes(uint64(storage-newStorage)))
199-
return nil
197+
if newStorage > gc.StorageGC {
198+
log.Warningf("post-GC: Watermark still exceeded")
199+
if newStorage > gc.StorageMax {
200+
err := ErrMaxStorageExceeded
201+
log.Error(err)
202+
return err
203+
}
204+
}
200205
}
201206
return nil
202207
}

0 commit comments

Comments
 (0)
Please sign in to comment.