From ff3c4ab2a891418d2eabbf0be3dd915492fb32dd Mon Sep 17 00:00:00 2001 From: XuanYang-cn Date: Wed, 29 Jun 2022 16:54:17 +0800 Subject: [PATCH] Fix compaction panic (#17840) See also: #17823 Signed-off-by: yangxuan --- internal/datacoord/meta.go | 3 ++- internal/datacoord/meta_test.go | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/datacoord/meta.go b/internal/datacoord/meta.go index f2b508cd7f..1bfa421992 100644 --- a/internal/datacoord/meta.go +++ b/internal/datacoord/meta.go @@ -1071,7 +1071,8 @@ func buildSegment(collectionID UniqueID, partitionID UniqueID, segmentID UniqueI } func isSegmentHealthy(segment *SegmentInfo) bool { - return segment.GetState() != commonpb.SegmentState_SegmentStateNone && + return segment != nil && + segment.GetState() != commonpb.SegmentState_SegmentStateNone && segment.GetState() != commonpb.SegmentState_NotExist && segment.GetState() != commonpb.SegmentState_Dropped } diff --git a/internal/datacoord/meta_test.go b/internal/datacoord/meta_test.go index 3944b35ae1..84c7f7e9f6 100644 --- a/internal/datacoord/meta_test.go +++ b/internal/datacoord/meta_test.go @@ -755,3 +755,9 @@ func TestMeta_GetAllSegments(t *testing.T) { assert.Nil(t, seg2) assert.NotNil(t, seg2All) } + +func TestMeta_isSegmentHealthy_issue17823_panic(t *testing.T) { + var seg *SegmentInfo + + assert.False(t, isSegmentHealthy(seg)) +}