diff --git a/cmd/data-update-tracker.go b/cmd/data-update-tracker.go index 4aec4381a..7d73be435 100644 --- a/cmd/data-update-tracker.go +++ b/cmd/data-update-tracker.go @@ -45,8 +45,8 @@ const ( dataUpdateTrackerFP = 0.99 dataUpdateTrackerQueueSize = 10000 + dataUpdateTrackerFilename = dataUsageBucket + SlashSeparator + ".tracker.bin" dataUpdateTrackerVersion = 1 - dataUpdateTrackerFilename = minioMetaBucket + SlashSeparator + bucketMetaPrefix + SlashSeparator + ".tracker.bin" dataUpdateTrackerSaveInterval = 5 * time.Minute // Reset bloom filters every n cycle @@ -195,6 +195,7 @@ func (d *dataUpdateTracker) load(ctx context.Context, drives ...string) { return } for _, drive := range drives { + cacheFormatPath := pathJoin(drive, dataUpdateTrackerFilename) f, err := os.Open(cacheFormatPath) if err != nil { @@ -255,6 +256,9 @@ func (d *dataUpdateTracker) startSaver(ctx context.Context, interval time.Durati cacheFormatPath := pathJoin(drive, dataUpdateTrackerFilename) err := ioutil.WriteFile(cacheFormatPath, buf.Bytes(), os.ModePerm) if err != nil { + if os.IsNotExist(err) { + continue + } logger.LogIf(ctx, err) continue } diff --git a/cmd/data-usage-cache.go b/cmd/data-usage-cache.go index 39616e36a..679f41bde 100644 --- a/cmd/data-usage-cache.go +++ b/cmd/data-usage-cache.go @@ -360,6 +360,9 @@ func (d *dataUsageCache) save(ctx context.Context, store ObjectLayer, name strin name, NewPutObjReader(r, nil, nil), ObjectOptions{}) + if isErrBucketNotFound(err) { + return nil + } return err } diff --git a/cmd/data-usage.go b/cmd/data-usage.go index a4c115042..067b6833d 100644 --- a/cmd/data-usage.go +++ b/cmd/data-usage.go @@ -37,17 +37,19 @@ import ( ) const ( + envDataUsageCrawlConf = "MINIO_DISK_USAGE_CRAWL_ENABLE" + envDataUsageCrawlDelay = "MINIO_DISK_USAGE_CRAWL_DELAY" + envDataUsageCrawlDebug = "MINIO_DISK_USAGE_CRAWL_DEBUG" + + dataUsageRoot = SlashSeparator + dataUsageBucket = minioMetaBucket + SlashSeparator + bucketMetaPrefix + dataUsageObjName = ".usage.json" dataUsageCacheName = ".usage-cache.bin" - envDataUsageCrawlConf = "MINIO_DISK_USAGE_CRAWL_ENABLE" - envDataUsageCrawlDelay = "MINIO_DISK_USAGE_CRAWL_DELAY" - envDataUsageCrawlDebug = "MINIO_DISK_USAGE_CRAWL_DEBUG" + dataUsageBloomName = ".bloomcycle.bin" dataUsageSleepPerFolder = 1 * time.Millisecond dataUsageSleepDefMult = 10.0 dataUsageUpdateDirCycles = 16 - dataUsageRoot = SlashSeparator - dataUsageBucket = minioMetaBucket + SlashSeparator + bucketMetaPrefix - dataUsageBloomName = ".bloomcycle.bin" dataUsageStartDelay = 5 * time.Minute // Time to wait on startup and between cycles. ) @@ -104,7 +106,9 @@ func runDataUsageInfo(ctx context.Context, objAPI ObjectLayer) { } _, err = objAPI.PutObject(ctx, dataUsageBucket, dataUsageBloomName, NewPutObjReader(r, nil, nil), ObjectOptions{}) - logger.LogIf(ctx, err) + if !isErrBucketNotFound(err) { + logger.LogIf(ctx, err) + } } } } @@ -126,7 +130,9 @@ func storeDataUsageInBackend(ctx context.Context, objAPI ObjectLayer, gui <-chan } _, err = objAPI.PutObject(ctx, dataUsageBucket, dataUsageObjName, NewPutObjReader(r, nil, nil), ObjectOptions{}) - logger.LogIf(ctx, err) + if !isErrBucketNotFound(err) { + logger.LogIf(ctx, err) + } } } @@ -135,7 +141,7 @@ func loadDataUsageFromBackend(ctx context.Context, objAPI ObjectLayer) (DataUsag err := objAPI.GetObject(ctx, dataUsageBucket, dataUsageObjName, 0, -1, &dataUsageInfoJSON, "", ObjectOptions{}) if err != nil { - if isErrObjectNotFound(err) { + if isErrObjectNotFound(err) || isErrBucketNotFound(err) { return DataUsageInfo{}, nil } return DataUsageInfo{}, toObjectErr(err, dataUsageBucket, dataUsageObjName) diff --git a/cmd/posix.go b/cmd/posix.go index 4df2bffdf..89606b840 100644 --- a/cmd/posix.go +++ b/cmd/posix.go @@ -485,8 +485,8 @@ func (s *posix) SetDiskID(id string) { func (s *posix) MakeVolBulk(volumes ...string) (err error) { for _, volume := range volumes { if err = s.MakeVol(volume); err != nil { - if err != errVolumeExists { - return err + if os.IsPermission(err) { + return errVolumeAccessDenied } } }