mirror of
https://github.com/minio/minio.git
synced 2025-11-07 21:02:58 -05:00
fix: throw appropriate errors when all disks fail (#13820)
when all disks fail with same error, fail server startup anyways - we cannot proceed. fixes #13818
This commit is contained in:
@@ -271,10 +271,23 @@ func newXLStorage(ep Endpoint) (*xlStorage, error) {
|
||||
filePath := pathJoin(p.diskPath, minioMetaTmpBucket, tmpFile)
|
||||
w, err := OpenFileDirectIO(filePath, os.O_CREATE|os.O_WRONLY|os.O_EXCL, 0666)
|
||||
if err != nil {
|
||||
switch {
|
||||
case isSysErrInvalidArg(err):
|
||||
return p, errUnsupportedDisk
|
||||
case osIsPermission(err):
|
||||
return p, errDiskAccessDenied
|
||||
case isSysErrIO(err):
|
||||
return p, errFaultyDisk
|
||||
case isSysErrNotDir(err):
|
||||
return p, errDiskNotDir
|
||||
}
|
||||
return p, err
|
||||
}
|
||||
if _, err = w.Write(alignedBuf); err != nil {
|
||||
w.Close()
|
||||
if isSysErrInvalidArg(err) {
|
||||
return p, errUnsupportedDisk
|
||||
}
|
||||
return p, err
|
||||
}
|
||||
w.Close()
|
||||
|
||||
Reference in New Issue
Block a user