From 976e9940bf02d146c1bdc0ab65d7db2cec10f2db Mon Sep 17 00:00:00 2001 From: jaime Date: Wed, 26 Oct 2022 19:37:31 +0800 Subject: [PATCH] Add some logs for handoff observer (#20097) Signed-off-by: yun.zhang Signed-off-by: yun.zhang --- internal/querycoordv2/observers/handoff_observer.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/querycoordv2/observers/handoff_observer.go b/internal/querycoordv2/observers/handoff_observer.go index ce31a9c580..cccae04b89 100644 --- a/internal/querycoordv2/observers/handoff_observer.go +++ b/internal/querycoordv2/observers/handoff_observer.go @@ -225,6 +225,7 @@ func (ob *HandoffObserver) tryHandoff(ctx context.Context, segment *querypb.Segm log := log.With(zap.Int64("collectionID", segment.GetCollectionID()), zap.Int64("partitionID", segment.GetPartitionID()), zap.Int64("segmentID", segment.GetSegmentID()), + zap.Bool("fake", segment.GetIsFake()), zap.Int64s("indexIDs", indexIDs), ) @@ -328,8 +329,17 @@ func (ob *HandoffObserver) isAllCompactFromHandoffCompleted(segmentInfo *querypb func (ob *HandoffObserver) tryRelease(ctx context.Context, event *HandoffEvent) { segment := event.Segment + if ob.isSealedSegmentLoaded(segment) || !ob.isSegmentExistOnTarget(segment) { + // Note: the fake segment will not add into target segments, in order to guarantee + // the all parent segments are released we check handoff events list instead of to + // check segment from the leader view, or might miss some segments to release. if segment.GetIsFake() && !ob.isAllCompactFromHandoffCompleted(segment) { + log.Debug("try to release fake segments fails, due to the dependencies haven't complete handoff.", + zap.Int64("segmentID", segment.GetSegmentID()), + zap.Bool("faked", segment.GetIsFake()), + zap.Int64s("sourceSegments", segment.CompactionFrom), + ) return }