From b10c3618220e9de860b27f291c3a5610bff05562 Mon Sep 17 00:00:00 2001 From: "zhenshan.cao" Date: Tue, 4 Jan 2022 23:33:24 +0800 Subject: [PATCH] Fix bug: should use Lock instead of RLock (#14797) Signed-off-by: zhenshan.cao --- Makefile | 3 +++ internal/datanode/segment_replica.go | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7e49a2cc63..1eadd5971e 100644 --- a/Makefile +++ b/Makefile @@ -122,6 +122,9 @@ test-proxy: @echo "Running go unittests..." go test -race -coverpkg=./... -coverprofile=profile.out -covermode=atomic -timeout 5m github.com/milvus-io/milvus/internal/proxy -v +test-datanode: + @echo "Running go unittests..." + go test -race -coverpkg=./... -coverprofile=profile.out -covermode=atomic -timeout 5m github.com/milvus-io/milvus/internal/datanode -v test-querycoord: @echo "Running go unittests..." diff --git a/internal/datanode/segment_replica.go b/internal/datanode/segment_replica.go index 1ca1c4b0ab..0def2d8e06 100644 --- a/internal/datanode/segment_replica.go +++ b/internal/datanode/segment_replica.go @@ -471,8 +471,8 @@ func (replica *SegmentReplica) initPKBloomFilter(s *Segment, statsBinlogs []*dat // listNewSegmentsStartPositions gets all *New Segments* start positions and // transfer segments states from *New* to *Normal*. func (replica *SegmentReplica) listNewSegmentsStartPositions() []*datapb.SegmentStartPosition { - replica.segMu.RLock() - defer replica.segMu.RUnlock() + replica.segMu.Lock() + defer replica.segMu.Unlock() result := make([]*datapb.SegmentStartPosition, 0, len(replica.newSegments)) for id, seg := range replica.newSegments {