From 02025278b35d7a3789fb0a047165859dd35d33dd Mon Sep 17 00:00:00 2001 From: Monet Lee Date: Wed, 13 Aug 2025 17:24:23 +0800 Subject: [PATCH] fix: solve batch incorrect error in Find DocIDs in v3.8.3-patch branch. (#3515) --- pkg/common/storage/controller/msg.go | 11 +++++++++-- pkg/common/storage/model/msg.go | 12 ++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/pkg/common/storage/controller/msg.go b/pkg/common/storage/controller/msg.go index a62c0ee5e..b756b053c 100644 --- a/pkg/common/storage/controller/msg.go +++ b/pkg/common/storage/controller/msg.go @@ -675,12 +675,19 @@ func (db *commonMsgDatabase) SearchMessage(ctx context.Context, req *pbmsg.Searc func (db *commonMsgDatabase) FindOneByDocIDs(ctx context.Context, conversationIDs []string, seqs map[string]int64) (map[string]*sdkws.MsgData, error) { totalMsgs := make(map[string]*sdkws.MsgData) for _, conversationID := range conversationIDs { - seq := seqs[conversationID] + seq, ok := seqs[conversationID] + if !ok { + log.ZWarn(ctx, "seq not found for conversationID", errs.New("seq not found for conversation"), "conversationID", conversationID) + continue + } + docID := db.msgTable.GetDocID(conversationID, seq) msgs, err := db.msgDocDatabase.FindOneByDocID(ctx, docID) if err != nil { - return nil, err + log.ZWarn(ctx, "FindOneByDocID failed", err, "conversationID", conversationID, "docID", docID, "seq", seq) + continue } + index := db.msgTable.GetMsgIndex(seq) totalMsgs[conversationID] = convert.MsgDB2Pb(msgs.Msg[index].Msg) } diff --git a/pkg/common/storage/model/msg.go b/pkg/common/storage/model/msg.go index 6cf63bfcd..9d5b56b42 100644 --- a/pkg/common/storage/model/msg.go +++ b/pkg/common/storage/model/msg.go @@ -120,15 +120,11 @@ func (m *MsgDocModel) GetDocID(conversationID string, seq int64) string { func (m *MsgDocModel) GetDocIDSeqsMap(conversationID string, seqs []int64) map[string][]int64 { t := make(map[string][]int64) - for i := 0; i < len(seqs); i++ { - docID := m.GetDocID(conversationID, seqs[i]) - if value, ok := t[docID]; !ok { - var temp []int64 - t[docID] = append(temp, seqs[i]) - } else { - t[docID] = append(value, seqs[i]) - } + for _, seq := range seqs { + docID := m.GetDocID(conversationID, seq) + t[docID] = append(t[docID], seq) } + return t }