From 655cc7fe06122eaba551a19898d0871a45edb93c Mon Sep 17 00:00:00 2001 From: aoiasd <45024769+aoiasd@users.noreply.github.com> Date: Wed, 23 Apr 2025 14:28:37 +0800 Subject: [PATCH] fix: bm25 stats idf oracle leak (#41425) relate: https://github.com/milvus-io/milvus/issues/41424 Signed-off-by: aoiasd --- internal/querynodev2/delegator/delegator_data.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/querynodev2/delegator/delegator_data.go b/internal/querynodev2/delegator/delegator_data.go index 5e36dc074d..caa197adba 100644 --- a/internal/querynodev2/delegator/delegator_data.go +++ b/internal/querynodev2/delegator/delegator_data.go @@ -954,12 +954,22 @@ func (sd *shardDelegator) ReleaseSegments(ctx context.Context, req *querypb.Rele pkoracle.WithSegmentType(commonpb.SegmentState_Sealed), pkoracle.WithWorkerID(targetNodeID), ) + if sd.idfOracle != nil { + for _, segment := range sealed { + sd.idfOracle.Remove(segment.SegmentID, commonpb.SegmentState_Sealed) + } + } } if len(growing) > 0 { sd.pkOracle.Remove( pkoracle.WithSegmentIDs(lo.Map(growing, func(entry SegmentEntry, _ int) int64 { return entry.SegmentID })...), pkoracle.WithSegmentType(commonpb.SegmentState_Growing), ) + if sd.idfOracle != nil { + for _, segment := range growing { + sd.idfOracle.Remove(segment.SegmentID, commonpb.SegmentState_Growing) + } + } } var releaseErr error