replication resync: report only the on-disk status (#18017)

Avoid reporting in-memory status since results can vary if different
nodes are queried, resync always runs at a single node.
This commit is contained in:
Poorna 2023-09-13 10:58:38 -07:00 committed by GitHub
parent 8b8be2695f
commit 18e23bafd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -476,27 +476,17 @@ func (api objectAPIHandlers) ResetBucketReplicationStatusHandler(w http.Response
writeErrorResponse(ctx, w, toAPIError(ctx, err), r.URL)
return
}
var tgtStats map[string]TargetReplicationResyncStatus
globalReplicationPool.resyncer.RLock()
brs, ok := globalReplicationPool.resyncer.statusMap[bucket]
if ok {
tgtStats = brs.cloneTgtStats()
}
globalReplicationPool.resyncer.RUnlock()
if !ok {
brs, err = loadBucketResyncMetadata(ctx, bucket, objectAPI)
if err != nil {
writeErrorResponse(ctx, w, errorCodes.ToAPIErrWithErr(ErrBadRequest, InvalidArgument{
Bucket: bucket,
Err: fmt.Errorf("No replication resync status available for %s", arn),
}), r.URL)
return
}
tgtStats = brs.cloneTgtStats()
brs, err := loadBucketResyncMetadata(ctx, bucket, objectAPI)
if err != nil {
writeErrorResponse(ctx, w, errorCodes.ToAPIErrWithErr(ErrBadRequest, InvalidArgument{
Bucket: bucket,
Err: fmt.Errorf("replication resync status not available for %s (%s)", arn, err.Error()),
}), r.URL)
return
}
var rinfo ResyncTargetsInfo
for tarn, st := range tgtStats {
for tarn, st := range brs.TargetsMap {
if arn != "" && tarn != arn {
continue
}