fix: Fix the bug that retrieved from wrong field for L0 segments (#37598)

issue: #37574

Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>
pull/37625/head
cai.zhang 2024-11-12 20:58:29 +08:00 committed by GitHub
parent cef5b7fd60
commit 14e007d6fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 12 deletions

View File

@ -45,7 +45,7 @@ import (
func loadL0Segments(ctx context.Context, delegator delegator.ShardDelegator, req *querypb.WatchDmChannelsRequest) error {
l0Segments := make([]*querypb.SegmentLoadInfo, 0)
for _, channel := range req.GetInfos() {
for _, segmentID := range channel.GetFlushedSegmentIds() {
for _, segmentID := range channel.GetLevelZeroSegmentIds() {
segmentInfo, ok := req.GetSegmentInfos()[segmentID]
if !ok ||
segmentInfo.GetLevel() != datapb.SegmentLevel_L0 {

View File

@ -69,9 +69,10 @@ type ServiceSuite struct {
schema *schemapb.CollectionSchema
partitionIDs []int64
// Test segments
validSegmentIDs []int64
flushedSegmentIDs []int64
droppedSegmentIDs []int64
validSegmentIDs []int64
flushedSegmentIDs []int64
droppedSegmentIDs []int64
levelZeroSegmentIDs []int64
// Test channel
vchannel string
pchannel string
@ -101,8 +102,9 @@ func (suite *ServiceSuite) SetupSuite() {
suite.collectionName = "test-collection"
suite.partitionIDs = []int64{222}
suite.validSegmentIDs = []int64{1, 2, 3}
suite.flushedSegmentIDs = []int64{4, 5, 6}
suite.flushedSegmentIDs = []int64{5, 6}
suite.droppedSegmentIDs = []int64{7, 8, 9}
suite.levelZeroSegmentIDs = []int64{4}
var err error
suite.mapper = metautil.NewDynChannelMapper()
@ -279,16 +281,17 @@ func (suite *ServiceSuite) TestWatchDmChannelsInt64() {
PartitionIDs: suite.partitionIDs,
Infos: []*datapb.VchannelInfo{
{
CollectionID: suite.collectionID,
ChannelName: suite.vchannel,
SeekPosition: suite.position,
FlushedSegmentIds: suite.flushedSegmentIDs,
DroppedSegmentIds: suite.droppedSegmentIDs,
CollectionID: suite.collectionID,
ChannelName: suite.vchannel,
SeekPosition: suite.position,
FlushedSegmentIds: suite.flushedSegmentIDs,
DroppedSegmentIds: suite.droppedSegmentIDs,
LevelZeroSegmentIds: suite.levelZeroSegmentIDs,
},
},
SegmentInfos: map[int64]*datapb.SegmentInfo{
suite.flushedSegmentIDs[0]: {
ID: suite.flushedSegmentIDs[0],
suite.levelZeroSegmentIDs[0]: {
ID: suite.levelZeroSegmentIDs[0],
CollectionID: suite.collectionID,
PartitionID: suite.partitionIDs[0],
InsertChannel: suite.vchannel,