Fix query request lost bug (#7715)

Issue: #7633
Signed-off-by: sunby <bingyi.sun@zilliz.com>
This commit is contained in:
sunby 2021-09-10 16:34:44 +08:00 committed by GitHub
parent ce33855652
commit db01040b53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 2 deletions

View File

@ -165,9 +165,10 @@ func (q *queryCollection) addToUnsolvedMsg(msg queryMsg) {
func (q *queryCollection) popAllUnsolvedMsg() []queryMsg {
q.unsolvedMsgMu.Lock()
defer q.unsolvedMsgMu.Unlock()
tmp := q.unsolvedMsg
ret := make([]queryMsg, 0, len(q.unsolvedMsg))
ret = append(ret, q.unsolvedMsg...)
q.unsolvedMsg = q.unsolvedMsg[:0]
return tmp
return ret
}
func (q *queryCollection) waitNewTSafe() Timestamp {

View File

@ -447,3 +447,36 @@ func TestResultHandlerStage_TranslateHits(t *testing.T) {
assert.Error(t, err)
})
}
func TestQueryCollection_AddPopUnsolvedMsg(t *testing.T) {
ctx, cancel := context.WithCancel(context.TODO())
qCollection, err := genSimpleQueryCollection(ctx, cancel)
assert.Nil(t, err)
var i int64
for i = 0; i < 3; i++ {
qCollection.addToUnsolvedMsg(&msgstream.RetrieveMsg{
RetrieveRequest: internalpb.RetrieveRequest{
Base: &commonpb.MsgBase{MsgID: i},
},
})
}
unsolved := qCollection.popAllUnsolvedMsg()
assert.EqualValues(t, 3, len(unsolved))
for i := 0; i < 3; i++ {
assert.EqualValues(t, i, unsolved[i].ID())
}
// add new msg to unsolved msgs and check old unsolved msg
for i := 0; i < 3; i++ {
qCollection.addToUnsolvedMsg(&msgstream.RetrieveMsg{
RetrieveRequest: internalpb.RetrieveRequest{
Base: &commonpb.MsgBase{MsgID: 4},
},
})
}
for i := 0; i < 3; i++ {
assert.EqualValues(t, i, unsolved[i].ID())
}
}