mirror of
https://github.com/minio/minio.git
synced 2025-11-07 21:02:58 -05:00
fix: revert allow offline disks on fresh start (#19052)
the PR in #16541 was incorrect and hand wrong assumptions
about the overall setup, revert this since this expectation
to have offline servers is wrong and we can end up with a
bigger chicken and egg problem.
This reverts commit 5996c8c4d5.
Bonus:
- preserve disk in globalLocalDrives properly upon connectDisks()
- do not return 'nil' from newXLStorage(), getting it ready for
the next set of changes for 'format.json' loading.
This commit is contained in:
@@ -229,14 +229,24 @@ func makeFormatErasureMetaVolumes(disk StorageAPI) error {
|
||||
|
||||
// Initialize a new storage disk.
|
||||
func newXLStorage(ep Endpoint, cleanUp bool) (s *xlStorage, err error) {
|
||||
path := ep.Path
|
||||
if path, err = getValidPath(path); err != nil {
|
||||
return nil, err
|
||||
s = &xlStorage{
|
||||
drivePath: ep.Path,
|
||||
endpoint: ep,
|
||||
globalSync: globalFSOSync,
|
||||
poolIndex: -1,
|
||||
setIndex: -1,
|
||||
diskIndex: -1,
|
||||
}
|
||||
|
||||
info, err := disk.GetInfo(path, true)
|
||||
s.drivePath, err = getValidPath(ep.Path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
s.drivePath = ep.Path
|
||||
return s, err
|
||||
}
|
||||
|
||||
info, err := disk.GetInfo(s.drivePath, true)
|
||||
if err != nil {
|
||||
return s, err
|
||||
}
|
||||
|
||||
if !globalIsCICD && !globalIsErasureSD {
|
||||
@@ -247,7 +257,7 @@ func newXLStorage(ep Endpoint, cleanUp bool) (s *xlStorage, err error) {
|
||||
// size less than or equal to the threshold as rootDrives.
|
||||
rootDrive = info.Total <= globalRootDiskThreshold
|
||||
} else {
|
||||
rootDrive, err = disk.IsRootDisk(path, SlashSeparator)
|
||||
rootDrive, err = disk.IsRootDisk(s.drivePath, SlashSeparator)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -257,15 +267,6 @@ func newXLStorage(ep Endpoint, cleanUp bool) (s *xlStorage, err error) {
|
||||
}
|
||||
}
|
||||
|
||||
s = &xlStorage{
|
||||
drivePath: path,
|
||||
endpoint: ep,
|
||||
globalSync: globalFSOSync,
|
||||
poolIndex: -1,
|
||||
setIndex: -1,
|
||||
diskIndex: -1,
|
||||
}
|
||||
|
||||
// Sanitize before setting it
|
||||
if info.NRRequests > 0 {
|
||||
s.nrRequests = info.NRRequests
|
||||
@@ -285,11 +286,11 @@ func newXLStorage(ep Endpoint, cleanUp bool) (s *xlStorage, err error) {
|
||||
formatData, formatFi, err := formatErasureMigrate(s.drivePath)
|
||||
if err != nil && !errors.Is(err, os.ErrNotExist) {
|
||||
if os.IsPermission(err) {
|
||||
return nil, errDiskAccessDenied
|
||||
return s, errDiskAccessDenied
|
||||
} else if isSysErrIO(err) {
|
||||
return nil, errFaultyDisk
|
||||
return s, errFaultyDisk
|
||||
}
|
||||
return nil, err
|
||||
return s, err
|
||||
}
|
||||
s.formatData = formatData
|
||||
s.formatFileInfo = formatFi
|
||||
@@ -297,7 +298,7 @@ func newXLStorage(ep Endpoint, cleanUp bool) (s *xlStorage, err error) {
|
||||
|
||||
// Create all necessary bucket folders if possible.
|
||||
if err = makeFormatErasureMetaVolumes(s); err != nil {
|
||||
return nil, err
|
||||
return s, err
|
||||
}
|
||||
|
||||
if len(s.formatData) > 0 {
|
||||
|
||||
Reference in New Issue
Block a user