@cryptotaxi247 / kubo / commits / 7e4676234

Fix maybeGC trigger condition

License: MIT Signed-off-by: rht <rhtbot@gmail.com>

rht committed Nov 27, 2015 at 11:31 UTC 7e46762342777a49eae6a8341fa85854fd9b10c2
1 file changed +13 -8
core/corerepo/gc.go
+13 -8
@@ -174,15 +174,13 @@ func (gc *GC) maybeGC(ctx context.Context, offset uint64) error {
174 return err
175 }
176
177 - if storage+offset > gc.StorageMax {
178 - err := ErrMaxStorageExceeded
179 - log.Error(err)
180 - return err
181 - }
182 -
177 if storage+offset > gc.StorageGC {
178 + if storage+offset > gc.StorageMax {
179 + log.Warningf("pre-GC: %s", ErrMaxStorageExceeded)
180 + }
181 +
182 // Do GC here
185 - log.Info("Starting repo GC...")
183 + log.Info("Watermark exceeded. Starting repo GC...")
184 defer log.EventBegin(ctx, "repoGC").Done()
185 // 1 minute is sufficient for ~1GB unlink() blocks each of 100kb in SSD
186 _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 {
194 return err
195 }
196 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 + }
205 }
206 return nil
207 }