fix: creating steep directory structure on trash folder (#14314)

weird directory structures get created on the '.trash'
folder upon server restarts, this PR fixes this.
This commit is contained in:
Harshavardhana 2022-02-15 16:34:03 -08:00 committed by GitHub
parent d0862ddf86
commit 03a6e8aee2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 11 deletions

View file

@ -98,12 +98,7 @@ func formatErasureCleanupTmp(diskPath string) {
err))
}
if err := renameAll(tmpOld, pathJoin(diskPath, minioMetaTmpDeletedBucket, tmpID)); err != nil && !errors.Is(err, errFileNotFound) {
logger.LogIf(GlobalContext, fmt.Errorf("unable to rename (%s -> %s) %w, drive may be faulty please investigate",
pathJoin(diskPath, minioMetaTmpBucket),
tmpOld,
osErrToFileErr(err)))
}
go removeAll(tmpOld)
// Renames and schedules for purging all bucket metacache.
renameAllBucketMetacache(diskPath)

View file

@ -21,7 +21,6 @@ import (
"bytes"
"context"
"crypto/rand"
"encoding/hex"
"errors"
"fmt"
"io"
@ -257,9 +256,8 @@ func newXLStorage(ep Endpoint) (s *xlStorage, err error) {
if len(s.formatData) == 0 { // Unformatted disk check if O_DIRECT is supported.
// Check if backend is writable and supports O_DIRECT
var rnd [32]byte
_, _ = rand.Read(rnd[:])
filePath := pathJoin(s.diskPath, ".writable-check-"+hex.EncodeToString(rnd[:])+".tmp")
uuid := mustGetUUID()
filePath := pathJoin(s.diskPath, ".writable-check-"+uuid+".tmp")
w, err := s.openFileDirect(filePath, os.O_CREATE|os.O_WRONLY|os.O_EXCL)
if err != nil {
return s, err
@ -272,7 +270,7 @@ func newXLStorage(ep Endpoint) (s *xlStorage, err error) {
}
return s, err
}
Remove(filePath)
renameAll(filePath, pathJoin(s.diskPath, minioMetaTmpDeletedBucket, uuid))
// Create all necessary bucket folders if possible.
if err = makeFormatErasureMetaVolumes(s); err != nil {