Open
Description
OpenIM Server Version
3.8.3-patch.3
Operating System and CPU Architecture
Linux (AMD)
Deployment Method
Source Code Deployment
Bug Description and Steps to Reproduce
环境
OS:Ubuntu22.04LTS
问题现象
客户端撤回消息失败。
open-im-server日志:
2025-03-20 20:14:42.328 �[37mDEBUG�[0m �[37m[PID:1426054] �[0m �[37mopenim-msgtransfer �[0m [v3.8.3-patch.3
] [msgtransfer/online_msg_to_mongo_handler.go:60] mongo consumer recv msg {"operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "msgs": "lastSeq:560 conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" msgData:{sendID:\"im_yinning\" groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\" clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\" serverMsgID:\"4936978d921468def8574bcf002c97ec\" senderPlatformID:5 senderNickname:\"im_yinning\" sessionType:3 msgFrom:100 contentType:101 content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\" seq:561 sendTime:1742472881499 createTime:1742472881217 status:1 offlinePushInfo:{title:\"You have a new message.\" iOSPushSound:\"+1\" iOSBadgeCount:true} attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\" ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"}"}
2025-03-20 20:14:42.329 �[34mINFO�[0m �[34m[PID:1426087] �[0m �[34mopenim-msgtransfer �[0m [v3.8.3-patch.3
] [msgtransfer/online_history_msg_handler.go:335] toPushTopic end {"triggerID": "1742472883209217322", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe"}
2025-03-20 20:14:42.329 �[34mINFO�[0m �[34m[PID:1426124] �[0m �[34mopenim-push �[0m [v3.8.3-patch.3
] [push/push_handler.go:247] Get group msg from msg_transfer and push msg {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "msg": "sendID:\"im_yinning\" groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\" clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\" serverMsgID:\"4936978d921468def8574bcf002c97ec\" senderPlatformID:5 senderNickname:\"im_yinning\" sessionType:3 msgFrom:100 contentType:101 content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\" seq:561 sendTime:1742472881499 createTime:1742472881217 status:1 offlinePushInfo:{title:\"You have a new message.\" iOSPushSound:\"+1\" iOSBadgeCount:true} attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\" ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405"}
2025-03-20 20:14:42.329 �[37mDEBUG�[0m �[37m[PID:1426124] �[0m �[37mopenim-push �[0m [v3.8.3-patch.3
] [rpccache/group.go:57] GroupLocalCache getGroupMemberIDs req {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405"}
2025-03-20 20:14:42.329 �[37mDEBUG�[0m �[37m[PID:1426124] �[0m �[37mopenim-push �[0m [v3.8.3-patch.3
] [rpccache/group.go:60] GroupLocalCache getGroupMemberIDs return {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405", "value": "userIDs:\"11111112\" userIDs:\"openim_group_admin\" userIDs:\"IntelligentAgentRobot001\" userIDs:\"im_yinning\""}
2025-03-20 20:14:42.329 �[34mINFO�[0m �[34m[PID:1426124] �[0m �[34mopenim-push �[0m [v3.8.3-patch.3
] [rpccache/online.go:273] get users online {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "online users length": 1, "offline users length": 3, "cost": "2.074µs"}
2025-03-20 20:14:42.329 �[37mDEBUG�[0m �[37m[PID:1426124] �[0m �[37mopenim-push �[0m [v3.8.3-patch.3
] [push/push_handler.go:229] GetConnsAndOnlinePush online cache {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "sendID": "im_yinning", "recvID": "", "groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405", "sessionType": 3, "clientMsgID": "2a7a44c5801428ecd039fb05b6f3f744", "serverMsgID": "4936978d921468def8574bcf002c97ec", "offlineUserIDs": ["11111112", "openim_group_admin", "IntelligentAgentRobot001"], "onlineUserIDs": ["im_yinning"]}
2025-03-20 20:14:42.329 �[37mDEBUG�[0m �[37m[PID:1426124] �[0m �[37mopenim-push �[0m [v3.8.3-patch.3
] [push/onlinepusher.go:68] get gateway conn {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "conn length": 1}
2025-03-20 20:14:42.329 �[34mINFO�[0m �[34m[PID:1426124] �[0m �[34mopenim-push �[0m [v3.8.3-patch.3
] [mw/rpc_client_interceptor.go:49] rpc client request {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "method": "/openim.msggateway.msgGateway/SuperGroupOnlineBatchPushOneMsg", "target": "192.168.9.133:41615", "req": "msgData:{sendID:\"im_yinning\" groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\" clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\" serverMsgID:\"4936978d921468def8574bcf002c97ec\" senderPlatformID:5 senderNickname:\"im_yinning\" sessionType:3 msgFrom:100 contentType:101 content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\" seq:561 sendTime:1742472881499 createTime:1742472881217 status:2 offlinePushInfo:{title:\"You have a new message.\" iOSPushSound:\"+1\" iOSBadgeCount:true} attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\" ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"} pushToUserIDs:\"im_yinning\""}
2025-03-20 20:14:42.329 �[34mINFO�[0m �[34m[PID:1426048] �[0m �[34mopenim-msggateway �[0m [v3.8.3-patch.3
] [mw/rpc_server_interceptor.go:36] rpc server request {"platform": "Web", "connID": "c32fa8fbf7094b939e5a87c8ca0b5f5f", "operationID": "25bf548c-5ab7-4e7c-bccd-365fa05169fe", "opUserID": "im_yinning", "method": "/openim.msggateway.msgGateway/SuperGroupOnlineBatchPushOneMsg", "req": "msgData:{sendID:\"im_yinning\" groupID:\"AgentGroup01f00027-05ea-1632-904b-870014469405\" clientMsgID:\"2a7a44c5801428ecd039fb05b6f3f744\" serverMsgID:\"4936978d921468def8574bcf002c97ec\" senderPlatformID:5 senderNickname:\"im_yinning\" sessionType:3 msgFrom:100 contentType:101 content:\"{\\\"content\\\":\\\"adsfkljl\\\"}\" seq:561 sendTime:1742472881499 createTime:1742472881217 status:2 offlinePushInfo:{title:\"You have a new message.\" iOSPushSound:\"+1\" iOSBadgeCount:true} attachedInfo:\"{\\\"groupHasReadInfo\\\":{\\\"hasReadCount\\\":0,\\\"groupMemberCount\\\":4},\\\"isPrivateChat\\\":false,\\\"burnDuration\\\":0,\\\"hasReadTime\\\":0,\\\"isEncryption\\\":false,\\\"inEncryptStatus\\\":false}\" ex:\"{\\\"groupType\\\":603,\\\"domain\\\":\\\"haixin\\\",\\\"memberType\\\":\\\"kefu\\\",\\\"sessionId\\\":\\\"01f005ca-a5b4-16c5-8fde-c245b239c6d4\\\"}\"} pushToUserIDs:\"im_yinning\""}
...上面为发消息部分,中间省略,下面为撤回部分...
2025-03-20 20:14:46.517 �[34mINFO�[0m �[34m[PID:1426186] �[0m �[34mopenim-api �[0m [v3.8.3-patch.3
] [mw/rpc_client_interceptor.go:49] rpc client request {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "target": "etcd:///openim/msg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\""}
2025-03-20 20:14:46.517 �[34mINFO�[0m �[34m[PID:1426181] �[0m �[34mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [mw/rpc_server_interceptor.go:36] rpc server request {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\""}
2025-03-20 20:14:46.517 �[37mDEBUG�[0m �[37m[PID:1426181] �[0m �[37mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [rpccache/user.go:56] UserLocalCache GetUserInfo req {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "userID": "im_yinning"}
2025-03-20 20:14:46.517 �[37mDEBUG�[0m �[37m[PID:1426181] �[0m �[37mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [rpccache/user.go:66] UserLocalCache GetUserInfo rpc {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "userID": "im_yinning"}
2025-03-20 20:14:46.517 �[34mINFO�[0m �[34m[PID:1426181] �[0m �[34mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [mw/rpc_client_interceptor.go:49] rpc client request {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "target": "etcd:///openim/user", "req": "userIDs:\"im_yinning\""}
2025-03-20 20:14:46.518 �[34mINFO�[0m �[34m[PID:1426047] �[0m �[34mopenim-rpc-user �[0m [v3.8.3-patch.3
] [mw/rpc_server_interceptor.go:36] rpc server request {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "req": "userIDs:\"im_yinning\""}
2025-03-20 20:14:46.518 �[34mINFO�[0m �[34m[PID:1426047] �[0m �[34mopenim-rpc-user �[0m [v3.8.3-patch.3
] [mw/rpc_server_interceptor.go:44] rpc server response success {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "req": "userIDs:\"im_yinning\"", "resp": "usersInfo:{userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816}"}
2025-03-20 20:14:46.518 �[34mINFO�[0m �[34m[PID:1426181] �[0m �[34mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [mw/rpc_client_interceptor.go:52] rpc client response success {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.user.user/getDesignateUsers", "resp": "usersInfo:{userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816}"}
2025-03-20 20:14:46.518 �[37mDEBUG�[0m �[37m[PID:1426181] �[0m �[37mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [rpccache/user.go:59] UserLocalCache GetUserInfo return {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "value": "userID:\"im_yinning\" nickname:\"im_yinning\" createTime:1741849772816"}
2025-03-20 20:14:46.519 �[33mWARN�[0m �[33m[PID:1426181] �[0m �[33mopenim-rpc-msg �[0m [v3.8.3-patch.3
] [mw/rpc_server_interceptor.go:85] rpc server response failed {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\"", "error": "Error: 1004 RecordNotFoundError msg not found | -> errs.(*codeError).WrapMsg() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/errs/coderr.go:67 -> msg.(*msgServer).RevokeMsg() /opt/im/open-im-server/internal/rpc/msg/revoke.go:57 -> msg._Msg_RevokeMsg_Handler.func1() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:979 -> startrpc.Start[...].prommetricsUnaryInterceptor.func7() /opt/im/open-im-server/pkg/common/startrpc/start.go:229 -> grpc.getChainUnaryHandler.func1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1211 -> mw.RpcServerInterceptor() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/rpc_server_interceptor.go:40 -> grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1202 -> msg._Msg_RevokeMsg_Handler() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:981 -> grpc.(*Server).processUnaryRPC() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1394 -> grpc.(*Server).handleStream() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1806 -> grpc.(*Server).serveStreams.func2.1() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/server.go:1030"}
2025-03-20 20:14:46.519 �[33mWARN�[0m �[33m[PID:1426186] �[0m �[33mopenim-api �[0m [v3.8.3-patch.3
] [mw/rpc_client_interceptor.go:73] rpc client response failed {"platform": "Web", "operationID": "1fd5c17b-3653-4ba1-9fc8-373538b89139", "opUserID": "im_yinning", "method": "/openim.msg.msg/RevokeMsg", "req": "conversationID:\"sg_AgentGroup01f00027-05ea-1632-904b-870014469405\" seq:561 userID:\"im_yinning\"", "error": "Error: 1004 RecordNotFoundError 1004 RecordNotFoundError msg not found | -> mw.RpcClientInterceptor() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/rpc_client_interceptor.go:72 -> grpc.(*ClientConn).Invoke() /root/go/pkg/mod/google.golang.org/grpc@v1.68.0/call.go:35 -> msg.(*msgClient).RevokeMsg() /root/go/pkg/mod/github.com/openimsdk/protocol@v0.0.72-alpha.78/msg/msg_grpc.pb.go:309 -> a2r.Call[...]() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/a2r/api2rpc.go:58 -> api.(*MessageApi).RevokeMsg() /opt/im/open-im-server/internal/api/msg.go:117 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.GinParseToken.func4() /opt/im/open-im-server/internal/api/router.go:324 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.GinParseOperationID.func3() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/gin.go:76 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.CorsHandler.func2() /root/go/pkg/mod/github.com/openimsdk/tools@v0.0.50-alpha.74/mw/gin.go:60 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 -> gin.CustomRecoveryWithWriter.func1() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:172 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:175 -> api.newGinRouter.prommetricsGin.func1() /opt/im/open-im-server/internal/api/router.go:43 -> gin.(*Context).Next() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:174 -> gin.(*Engine).handleHTTPRequest() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/context.go:172 -> gin.(*Engine).ServeHTTP() /root/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/gin.go:578 -> http.serverHandler.ServeHTTP() /usr/local/go/src/net/http/server.go:3302 -> http.(*conn).serve() /usr/local/go/src/net/http/server.go:2103"}
服务端完整日志:
客户端日志:
尝试分析
Server-APIs: conversation/get_owner_conversation(获取当前用户的会话列表),返回结果
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"total": 5,
"conversations": [
{
"ownerUserID": "im_yinning",
"conversationID": "sg_AgentGroup01f00027-05ea-1632-904b-870014469405",
"recvMsgOpt": 0,
"conversationType": 3,
"userID": "",
"groupID": "AgentGroup01f00027-05ea-1632-904b-870014469405",
"isPinned": false,
"attachedInfo": "",
"isPrivateChat": false,
"groupAtType": 0,
"ex": "",
"burnDuration": 0,
"minSeq": 0,
"maxSeq": 399,
"msgDestructTime": 0,
"latestMsgDestructTime": -62135596800000,
"isMsgDestruct": false
}
]
}
}
通过接口看到im_yinning
用户在该会话的maxSeq
为399,而上面日志中发送和打算撤回消息的seq为561。
再调用Server-APIs: msg/revoke_msg,其中"seq": 561
,返回结果为:
{
"errCode": 1004,
"errMsg": "RecordNotFoundError",
"errDlt": "1004 RecordNotFoundError msg not found"
}
Screenshots Link
No response