Fix flush deltabuf with segmentID=0 (#23064)

See also: #23062

Signed-off-by: yangxuan <xuan.yang@zilliz.com>
pull/23079/head
XuanYang-cn 2023-03-28 19:42:04 +08:00 committed by GitHub
parent a3e4b74fe1
commit 40f4785948
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 0 deletions

View File

@ -142,6 +142,7 @@ func (bm *DelBufferManager) CompactSegBuf(compactedToSegID UniqueID, compactedFr
compactToDelBuff, loaded := bm.Load(compactedToSegID)
if !loaded {
compactToDelBuff = newDelDataBuf()
compactToDelBuff.item.segmentID = compactedToSegID
}
for _, segID := range compactedFromSegIDs {

View File

@ -186,6 +186,11 @@ func Test_CompactSegBuff(t *testing.T) {
assert.False(t, seg2Exist)
assert.Equal(t, int64(2), delBufferManager.GetEntriesNum(compactedToSegID))
// test item of compactedToSegID is correct
compactTo, ok := delBufferManager.Load(compactedToSegID)
assert.True(t, ok)
assert.Equal(t, compactedToSegID, compactTo.item.segmentID)
//5. test roll and evict (https://github.com/milvus-io/milvus/issues/20501)
delBufferManager.channel.rollDeleteBuffer(compactedToSegID)
_, segCompactedToExist := delBufferManager.Load(compactedToSegID)