mirror of
https://github.com/minio/minio.git
synced 2025-11-10 14:09:48 -05:00
reference format obtained doesn't need further validation (#8964)
we don't need to validateFormats again once we have obtained reference format, because it is possible that at this stage another server is doing a disk heal during startup, once in a while due to delays we get false positives and our server doesn't start. Format in quorum as reference format can be assumed as valid and we proceed further, until and unless HealFormat re-inits the disks after a successful heal. Also use separate port for healing tests to avoid any conflicts with regular build testing. Fixes #8884
This commit is contained in:
@@ -75,6 +75,7 @@ func (h *healRoutine) run() {
|
||||
break
|
||||
}
|
||||
|
||||
// Wait and proceed if there are active requests
|
||||
waitForLowHTTPReq(int32(globalEndpoints.Nodes()))
|
||||
|
||||
var res madmin.HealResultItem
|
||||
|
||||
@@ -593,9 +593,13 @@ func listIAMConfigItems(objectAPI ObjectLayer, pathPrefix string, dirs bool,
|
||||
return
|
||||
}
|
||||
|
||||
// Slow down listing and loading for config items to
|
||||
// reduce load on the server
|
||||
waitForLowHTTPReq(int32(globalEndpoints.Nodes()))
|
||||
// Attempt a slow down load only when server is
|
||||
// active and initialized.
|
||||
if !globalSafeMode {
|
||||
// Slow down listing and loading for config items to
|
||||
// reduce load on the server
|
||||
waitForLowHTTPReq(int32(globalEndpoints.Nodes()))
|
||||
}
|
||||
|
||||
marker = lo.NextMarker
|
||||
lister := dirList(lo)
|
||||
|
||||
@@ -302,17 +302,6 @@ func connectLoadInitFormats(retryCount int, firstDisk bool, endpoints Endpoints,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Validate all format configs with reference format.
|
||||
if err = validateXLFormats(format, formatConfigs, endpoints, setCount, drivesPerSet); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Get the deploymentID if set.
|
||||
format.ID, err = formatXLGetDeploymentID(format, formatConfigs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if format.ID == "" {
|
||||
// Not a first disk, wait until first disk fixes deploymentID
|
||||
if !firstDisk {
|
||||
|
||||
@@ -1664,6 +1664,7 @@ func (s *xlSets) HealObjects(ctx context.Context, bucket, prefix string, healObj
|
||||
continue
|
||||
}
|
||||
|
||||
// Wait and proceed if there are active requests
|
||||
waitForLowHTTPReq(int32(s.drivesPerSet))
|
||||
|
||||
if err := healObject(bucket, entry.Name); err != nil {
|
||||
|
||||
@@ -1363,6 +1363,7 @@ func (z *xlZones) HealObjects(ctx context.Context, bucket, prefix string, healOb
|
||||
continue
|
||||
}
|
||||
|
||||
// Wait and proceed if there are active requests
|
||||
waitForLowHTTPReq(int32(zoneDrivesPerSet[zoneIndex]))
|
||||
|
||||
if err := healObject(bucket, entry.Name); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user