mirror of
https://github.com/pgsty/minio.git
synced 2026-10-10 19:55:59 +03:00
Heal restored object contents on disk (#12238)
This commit is contained in:
committed by
GitHub
parent
d495cb68d3
commit
0bab1c1895
@@ -213,7 +213,7 @@ func shouldHealObjectOnDisk(erErr, dataErr error, meta FileInfo, quorumModTime t
|
||||
return true
|
||||
}
|
||||
if erErr == nil {
|
||||
if meta.TransitionStatus != lifecycle.TransitionComplete {
|
||||
if !meta.IsRemote() {
|
||||
// If xl.meta was read fine but there may be problem with the part.N files.
|
||||
if IsErr(dataErr, []error{
|
||||
errFileNotFound,
|
||||
@@ -271,7 +271,6 @@ func (er erasureObjects) healObject(ctx context.Context, bucket string, object s
|
||||
|
||||
// List of disks having all parts as per latest er.meta.
|
||||
availableDisks, dataErrs := disksWithAllParts(ctx, latestDisks, partsMetadata, errs, bucket, object, scanMode)
|
||||
|
||||
// Loop to find number of disks with valid data, per-drive
|
||||
// data state and a list of outdated disks on which data needs
|
||||
// to be healed.
|
||||
@@ -367,7 +366,7 @@ func (er erasureObjects) healObject(ctx context.Context, bucket string, object s
|
||||
nfi := fi
|
||||
nfi.Erasure.Index = 0
|
||||
nfi.Erasure.Checksums = nil
|
||||
if fi.TransitionStatus != lifecycle.TransitionComplete {
|
||||
if fi.IsRemote() {
|
||||
nfi.Parts = nil
|
||||
}
|
||||
return nfi
|
||||
@@ -401,7 +400,7 @@ func (er erasureObjects) healObject(ctx context.Context, bucket string, object s
|
||||
inlineBuffers = make([]*bytes.Buffer, len(outDatedDisks))
|
||||
}
|
||||
|
||||
if !latestMeta.Deleted && latestMeta.TransitionStatus != lifecycle.TransitionComplete {
|
||||
if !latestMeta.Deleted && !latestMeta.IsRemote() {
|
||||
result.DataBlocks = latestMeta.Erasure.DataBlocks
|
||||
result.ParityBlocks = latestMeta.Erasure.ParityBlocks
|
||||
|
||||
|
||||
Reference in New Issue
Block a user