mirror of https://github.com/milvus-io/milvus.git
Fix not all segment state is drop after DropVirtualChannel (#12702)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/12726/head
parent
877bfdac58
commit
22fddc537c
|
@ -351,6 +351,19 @@ func (m *meta) UpdateDropChannelSegmentInfo(channel string, segments []*SegmentI
|
|||
modSegments[seg2Drop.GetID()] = segment
|
||||
}
|
||||
}
|
||||
// set all channels of channel to dropped
|
||||
for _, seg := range m.segments.segments {
|
||||
if seg.InsertChannel != channel {
|
||||
continue
|
||||
}
|
||||
_, ok := modSegments[seg.ID]
|
||||
// seg inf mod segments are all in dropped state
|
||||
if !ok {
|
||||
clonedSeg := seg.Clone()
|
||||
clonedSeg.State = commonpb.SegmentState_Dropped
|
||||
modSegments[seg.ID] = clonedSeg
|
||||
}
|
||||
}
|
||||
|
||||
return m.batchSaveDropSegments(channel, modSegments)
|
||||
}
|
||||
|
|
|
@ -960,6 +960,16 @@ func TestDropVirtualChannel(t *testing.T) {
|
|||
err := svr.meta.AddSegment(NewSegmentInfo(s))
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
// add non matched segments
|
||||
os := &datapb.SegmentInfo{
|
||||
ID: maxOperationsPerTxn + 100,
|
||||
CollectionID: 0,
|
||||
InsertChannel: "ch2",
|
||||
|
||||
State: commonpb.SegmentState_Growing,
|
||||
}
|
||||
|
||||
svr.meta.AddSegment(NewSegmentInfo(os))
|
||||
|
||||
err := svr.channelManager.AddNode(0)
|
||||
require.Nil(t, err)
|
||||
|
|
Loading…
Reference in New Issue