From 51683c2fd949b92f64452e31f64d02277d4cfbb4 Mon Sep 17 00:00:00 2001 From: cuidajun Date: Thu, 24 Nov 2022 18:08:28 +0800 Subject: [PATCH] Fix: [scheduler] destPeer keepalive when downloaded by other peer (#1865) Signed-off-by: bigerous --- scheduler/service/service.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scheduler/service/service.go b/scheduler/service/service.go index ee93b6758..72254b1e5 100644 --- a/scheduler/service/service.go +++ b/scheduler/service/service.go @@ -234,7 +234,9 @@ func (s *Service) ReportPieceResult(stream schedulerv1.Scheduler_ReportPieceResu if parent, loaded := s.resource.PeerManager().Load(piece.DstPid); loaded { metrics.PeerHostTraffic.WithLabelValues(peer.Tag, peer.Application, metrics.PeerHostTrafficUploadType, parent.Host.ID, parent.Host.IP).Add(float64(piece.PieceInfo.RangeSize)) } else { - peer.Log.Warnf("dst peer %s not found for piece %#v %#v", piece.DstPid, piece, piece.PieceInfo) + if piece.DstPid != "" { // not backSource piece + peer.Log.Warnf("dst peer %s not found for piece %#v %#v", piece.DstPid, piece, piece.PieceInfo) + } } } @@ -748,6 +750,11 @@ func (s *Service) handlePieceSuccess(ctx context.Context, peer *resource.Peer, p // peer.UpdateAt needs to be updated to prevent // the peer from being GC during the download process. peer.UpdateAt.Store(time.Now()) + if piece.DstPid != "" { + if destPeer, ok := s.resource.PeerManager().Load(piece.DstPid); ok { + destPeer.UpdateAt.Store(time.Now()) + } + } // When the peer downloads back-to-source, // piece downloads successfully updates the task piece info.