Skip to content

[BUG] get_sorted_conversation_list error:1004 mongo find one: mongo: no documents in result mongo #221

Open
@marlonyao

Description

@marlonyao

OpenIM Server Version

3.8.2

Operating System and CPU Architecture

Linux (AMD)

Deployment Method

Docker Deployment

Bug Description and Steps to Reproduce

我是将 openim 2.3.3 版本迁移到 3.8.2 版本,通过 API 导入了用户(/user/user_register),好友关系(/friend/import_friend),群组(/group/create_group)、聊天记录(/msg/send_msg)。

对于部分用户,当我调用 http://im-server-ip:10002/conversation/get_sorted_conversation_list 接口会报错:

POST http://im-server-ip:10002/conversation/get_sorted_conversation_list
{
  "userID": "some_use_id",
  "pagination": {
    "pageNumber": 1,
    "showNumber": 1000
  }
}

{
    "errCode": 1004,
    "errMsg": "1004 mongo find one: mongo: no documents in result mongo find one: mongo: no documents in result",
    "errDlt": "1004 mongo find one: mongo: no documents in result mongo find one: mongo: no documents in result"
}

有些用户会成功,但是不少用户会失败。服务端报错:

2025-01-21 03:39:11.439	ERROR	[PID:1874]     	openim-rpc-conversation  	[main]                        	[mw/rpc_client_interceptor.go:58]                 	RPC Client Response Error - GetMsgByConversationIDs	{"platform": "Admin", "operationID": "1646445464564", "opUserID": "imAdmin", "funcName": "/openim.msg.msg/GetMsgByConversationIDs", "error": "rpc error: code = Code(1004) desc = mongo find one: mongo: no documents in result"}
2025-01-21 03:39:11.439	WARN	[PID:1874]     	openim-rpc-conversation  	[main]                        	[mw/rpc_server_interceptor.go:94]                 	rpc server resp WithDetails error                 	{"platform": "Admin", "operationID": "1646445464564", "opUserID": "imAdmin", "funcName": "/openim.conversation.conversation/GetSortedConversationList", "error": "Error: 1004 mongo find one: mongo: no documents in result mongo find one: mongo: no documents in result | Error trace: 1 (/go/pkg/mod/google.golang.org/[email protected]/server.go:1029) -> handleStream (/go/pkg/mod/google.golang.org/[email protected]/server.go:1805) -> processUnaryRPC (/go/pkg/mod/google.golang.org/[email protected]/server.go:1394) -> _Conversation_GetSortedConversationList_Handler (/go/pkg/mod/github.com/openimsdk/[email protected]/conversation/conversation_grpc.pb.go:488) -> func1 (/go/pkg/mod/google.golang.org/[email protected]/server.go:1202) -> RpcServerInterceptor (/go/pkg/mod/github.com/openimsdk/[email protected]/mw/rpc_server_interceptor.go:50) -> func1 (/go/pkg/mod/google.golang.org/[email protected]/server.go:1211) -> func4 (/openim-server/pkg/common/startrpc/start.go:193) -> func1 (/go/pkg/mod/github.com/openimsdk/[email protected]/conversation/conversation_grpc.pb.go:486) -> GetSortedConversationList (/openim-server/internal/rpc/conversation/conversation.go:134) -> GetMsgByConversationIDs (/openim-server/pkg/rpcclient/msg.go:205) -> GetMsgByConversationIDs (/go/pkg/mod/github.com/openimsdk/[email protected]/msg/msg_grpc.pb.go:164) -> Invoke (/go/pkg/mod/google.golang.org/[email protected]/call.go:35) -> RpcClientInterceptor (/go/pkg/mod/github.com/openimsdk/[email protected]/mw/rpc_client_interceptor.go:72) -> Wrap (/go/pkg/mod/github.com/openimsdk/[email protected]/errs/coderr.go:74) -> Wrap (/go/pkg/mod/github.com/openimsdk/[email protected]/errs/coderr.go:126)"}
2025-01-21 03:39:11.439	WARN	[PID:1874]     	openim-rpc-conversation  	[main]                        	[mw/rpc_server_interceptor.go:113]                	RPC Server Response Error - GetSortedConversationList	{"platform": "Admin", "operationID": "1646445464564", "opUserID": "imAdmin", "funcName": "/openim.conversation.conversation/GetSortedConversationList", "req": "userID:\"lookcap_u67a160cdb9be451\"  pagination:{pageNumber:1  showNumber:1000}", "err": null, "error": "rpc error: code = Code(1004) desc = 1004 mongo find one: mongo: no documents in result mongo find one: mongo: no documents in result"}
2025-01-21 03:39:11.439	ERROR	[PID:1889]     	openim-api               	[main]                        	[mw/rpc_client_interceptor.go:58]                 	RPC Client Response Error - GetSortedConversationList	{"platform": "Admin", "operationID": "1646445464564", "opUserID": "imAdmin", "funcName": "/openim.conversation.conversation/GetSortedConversationList", "error": "rpc error: code = Code(1004) desc = 1004 mongo find one: mongo: no documents in result mongo find one: mongo: no documents in result"}

我选取了部分详细日志在附件里。
test.log

对于报错的用户,调用 /conversation/get_owner_conversation 和 /conversation/get_all_conversations 接口是没有问题的。我自己看了下数据,可能原因是用户的有些会话,在 msg 集合没有对应记录。

例如:/conversation/get_owner_conversation 返回的其中一个会话 id 为 sg_1909233676,从 `conversation` 集合里也确实能找得到。
但是在 `msg` 里找 {doc_id: 'sg_1909233676:0'} 相关文档,结果为空。 

我不清楚为什么在 msg 没有对应的记录,大部分会话在加好友或者建群时会自动发一条消息,这时会自动创建了 msg 文档。在迁移过程中,我都是调用的相关接口,并没有直接操作数据库。怀疑 openim 在处理建群时存在 bug,数据不一致,但是不一致的概率有点高。

Screenshots Link

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions