mirror of
https://github.com/minio/minio.git
synced 2025-07-16 20:31:55 -04:00
fix: handle setIndexes properly
This commit is contained in:
parent
bc89e47066
commit
f07c9c58e7
@ -785,9 +785,7 @@ func (a adminAPIHandlers) HealSetsHandler(w http.ResponseWriter, r *http.Request
|
|||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
lbDisks := z.serverSets[0].sets[setNumber].getDisks()
|
lbDisks := z.serverSets[0].sets[setNumber].getDisks()
|
||||||
if err := healErasureSet(ctx, vars[healSetsPrefix], setNumber, opts.sleepForIO, opts.sleepDuration, buckets, lbDisks); err != nil {
|
if err := healErasureSet(ctx, vars[healSetsPrefix], setNumber, opts.sleepForIO, opts.sleepDuration, buckets, lbDisks); err != nil {
|
||||||
if !isErrBucketNotFound(err) {
|
logger.LogIf(ctx, err)
|
||||||
logger.LogIf(ctx, err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}(setNumber)
|
}(setNumber)
|
||||||
}
|
}
|
||||||
|
@ -909,12 +909,12 @@ func lexicallySortedEntryVersions(entryChs []FileInfoVersionsCh, entries []FileI
|
|||||||
if !found {
|
if !found {
|
||||||
lentry = entries[i]
|
lentry = entries[i]
|
||||||
found = true
|
found = true
|
||||||
setIndex = i
|
setIndex = entryChs[i].SetIndex
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if entries[i].Name < lentry.Name {
|
if entries[i].Name < lentry.Name {
|
||||||
lentry = entries[i]
|
lentry = entries[i]
|
||||||
setIndex = i
|
setIndex = entryChs[i].SetIndex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,11 +127,14 @@ func healErasureSet(ctx context.Context, prefix string, setIndex int, maxIO int,
|
|||||||
object: backendEncryptedFile,
|
object: backendEncryptedFile,
|
||||||
}
|
}
|
||||||
|
|
||||||
buckets = append(buckets, BucketInfo{
|
// Heal config prefix.
|
||||||
Name: pathJoin(minioMetaBucket, minioConfigPrefix),
|
bgSeq.sourceCh <- healSource{
|
||||||
}, BucketInfo{
|
bucket: pathJoin(minioMetaBucket, minioConfigPrefix),
|
||||||
Name: pathJoin(minioMetaBucket, bucketConfigPrefix),
|
}
|
||||||
}) // add metadata .minio.sys/ bucket prefixes to heal
|
|
||||||
|
bgSeq.sourceCh <- healSource{
|
||||||
|
bucket: pathJoin(minioMetaBucket, bucketConfigPrefix),
|
||||||
|
}
|
||||||
|
|
||||||
// Heal all buckets with all objects
|
// Heal all buckets with all objects
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
@ -177,7 +180,7 @@ func healErasureSet(ctx context.Context, prefix string, setIndex int, maxIO int,
|
|||||||
for {
|
for {
|
||||||
entry, quorumCount, ok := lexicallySortedEntryVersions(entryChs, entries, entriesValid)
|
entry, quorumCount, ok := lexicallySortedEntryVersions(entryChs, entries, entriesValid)
|
||||||
if !ok {
|
if !ok {
|
||||||
break
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if quorumCount == setDriveCount {
|
if quorumCount == setDriveCount {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user