Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

发送群消息报错,但消息成功发送,调用无返回值 #1115

Closed
syhanjin opened this issue Oct 17, 2021 · 15 comments
Closed

发送群消息报错,但消息成功发送,调用无返回值 #1115

syhanjin opened this issue Oct 17, 2021 · 15 comments
Labels
bug? The issue author think this is a bug

Comments

@syhanjin
Copy link

环境信息

go-cqhttp版本:
运行环境: centos7
连接方式: 反向ws
使用协议: 手机的吧

在最新的release版本中能否复现
不确定

bug内容

在发送群消息时,消息长度70字左右,消息成功发送,但是怀疑api没有返回值,因为nb2中报网络错误
日志:
[2021-10-17 10:05:22] [DEBUG]: Protocol -> rev pkt: MultiMsg.ApplyUp seq: 13913
[2021-10-17 10:05:22] [DEBUG]: Protocol -> rev pkt: MessageSvc.PbSendMsg seq: 13914
[2021-10-17 10:05:22] [DEBUG]: Protocol -> rev pkt: OnlinePush.PbPushGroupMsg seq: 5891
[2021-10-17 10:05:22] [DEBUG]: Protocol -> rev pkt: MultiMsg.ApplyDown seq: 13915
[2021-10-17 10:05:22] [ERROR]: Protocol -> panic on decoder MultiMsg.ApplyDown : runtime error: invalid memory address or nil pointer dereference
goroutine 205 [running]:
runtime/debug.Stack(0xc000067b00, 0xd6b460, 0x154dc00)
runtime/debug/stack.go:24 +0x9f
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1.1(0xc0000e8480, 0xc0006088c0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:204 +0x76
panic(0xd6b460, 0x154dc00)
runtime/panic.go:965 +0x1b9
github.com/Mrs4s/MiraiGo/utils.HttpGetBytes.func1(0x0, 0x0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/utils/http.go:23 +0x22
github.com/Mrs4s/MiraiGo/utils.HttpGetBytes(0xc000873800, 0x17c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfb2980, 0xc0006012c0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/utils/http.go:25 +0x105
github.com/Mrs4s/MiraiGo/client.decodeMultiApplyDownResponse(0xc0000e8480, 0xc000463be0, 0xc0005686c0, 0x228, 0x228, 0x1, 0xc0004634e0, 0x0, 0x156c440)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/multimsg.go:103 +0x269
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1(0xc0000e8480, 0xc0006088c0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:211 +0x194
created by github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:201 +0x3d7

[2021-10-17 10:05:24] [DEBUG]: 向WS服务器 127.0.0.1:5701 推送Event: {"interval":5000,"meta_event_type":"heartbeat","post_type":"meta_event","self_id":2493288137,"status":{"app_enabled":true,"app_good":true,"app_initialized":true,"good":true,"online":true,"plugins_good":null,"stat":{"packet_received":60,"packet_sent":38,"packet_lost":0,"message_received":8,"message_sent":8,"disconnect_times":0,"lost_times":0,"last_message_time":1634436322}},"time":1634436324}

[2021-10-17 10:05:27] [DEBUG]: Protocol -> rev pkt: OidbSvc.0x88d_0 seq: 13916
[2021-10-17 10:05:27] [DEBUG]: Protocol -> rev pkt: MessageSvc.PbGetGroupMsg seq: 13917
[2021-10-17 10:05:27] [DEBUG]: Protocol -> rev pkt: MultiMsg.ApplyDown seq: 13918
[2021-10-17 10:05:27] [ERROR]: Protocol -> panic on decoder MultiMsg.ApplyDown : runtime error: invalid memory address or nil pointer dereference
goroutine 218 [running]:
runtime/debug.Stack(0xc000563b00, 0xd6b460, 0x154dc00)
runtime/debug/stack.go:24 +0x9f
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1.1(0xc0000e8480, 0xc0006b4a00)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:204 +0x76
panic(0xd6b460, 0x154dc00)
runtime/panic.go:965 +0x1b9
github.com/Mrs4s/MiraiGo/utils.HttpGetBytes.func1(0x0, 0x0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/utils/http.go:23 +0x22
github.com/Mrs4s/MiraiGo/utils.HttpGetBytes(0xc0004d2f00, 0x17c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfb2980, 0xc0006ca0f0)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/utils/http.go:25 +0x105
github.com/Mrs4s/MiraiGo/client.decodeMultiApplyDownResponse(0xc0000e8480, 0xc000454800, 0xc000490d80, 0x228, 0x228, 0xbffd01, 0xc0004547a0, 0xa34a3d8a0, 0x156c440)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/multimsg.go:103 +0x269
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1(0xc0000e8480, 0xc0006b4a00)
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:211 +0x194
created by github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop
github.com/Mrs4s/MiraiGo@v0.0.0-20210810070836-6614d2383adb/client/network.go:201 +0x3d7

复现方法

每次都是这样,已手动修改dns仍有这个错误

@syhanjin syhanjin added the bug? The issue author think this is a bug label Oct 17, 2021
@BesiegedCity
Copy link

我遇到了类似的问题,在docker里面基于ubuntu:20.04运行gocqhttp,已安装ffmpeg,有的含图片的消息可以发送,有的发不出来。但是只要马上换成在容器外面gocq运行就是正常的,之前发送不了的图片也可以发送,感觉不像是被风控了。
遇到的错误栈和上面一样:

go-cqhttp | [2021-10-19 18:54:48] [ERROR]: Protocol -> panic on decoder MultiMsg.ApplyDown : runtime error: invalid memory address or nil pointer dereference
go-cqhttp | goroutine 130 [running]:
go-cqhttp | runtime/debug.Stack()
go-cqhttp | runtime/debug/stack.go:24 +0x65
go-cqhttp | github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1.1()
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/client/network.go:223 +0x5d
go-cqhttp | panic({0xbd4f40, 0x13d4090})
go-cqhttp | runtime/panic.go:1038 +0x215
go-cqhttp | github.com/Mrs4s/MiraiGo/utils.HttpGetBytes.func1()
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/utils/http.go:23 +0x1c
go-cqhttp | github.com/Mrs4s/MiraiGo/utils.HttpGetBytes({0xc0003be780, 0x4}, {0x0, 0x2})
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/utils/http.go:25 +0xb4
go-cqhttp | github.com/Mrs4s/MiraiGo/client.decodeMultiApplyDownResponse(0xc0002e2d80, 0x23f, {0xc0002e2d80, 0x23f, 0x23f})
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/client/multimsg.go:103 +0x1bc
go-cqhttp | github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1(0xc00007f7c0)
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/client/network.go:233 +0x1cb
go-cqhttp | created by github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop
go-cqhttp | github.com/Mrs4s/MiraiGo@v0.0.0-20210916113136-0238b2382b82/client/network.go:220 +0x525

nb2返回WebSocket API call Timeout.

因为启动的时候还会看到

go-cqhttp | [2021-10-19 18:53:41] [WARNING]: 检查更新失败: Get "https://api.github.com/repos/Mrs4s/go-cqhttp/releases/latest": x509: certificate signed by unknown authority

所以我想是不是缺少什么依赖...

@Mrs4s
Copy link
Owner

Mrs4s commented Oct 19, 2021

这个是证书配置问题吧

@BesiegedCity
Copy link

这个是证书配置问题吧

我在容器里apt-get install ca-certificates之后就正常了😂,更新失败没了,之前发不出去的图片也能发了。
可能是精简之后的ubuntu镜像里面没带常见ca证书?(不太了解证书问题

不知道centos7的错误是不是也是这个原因
但是为什么之前的文字和部分图片也能发呢?

@BesiegedCity
Copy link

我在容器里apt-get install ca-certificates之后就正常了😂,更新失败没了,之前发不出去的图片也能发了。 可能是精简之后的ubuntu镜像里面没带常见ca证书?(不太了解证书问题

不知道centos7的错误是不是也是这个原因 但是为什么之前的文字和部分图片也能发呢?

发现之前发不出去的图片传递给gocq的只是图片地址(能发的传递的是图片二进制),可能是没证书下载不下来。

@BesiegedCity
Copy link

BesiegedCity commented Oct 21, 2021

我在容器里apt-get install ca-certificates之后就正常了😂,更新失败没了,之前发不出去的图片也能发了。 可能是精简之后的ubuntu镜像里面没带常见ca证书?(不太了解证书问题
不知道centos7的错误是不是也是这个原因 但是为什么之前的文字和部分图片也能发呢?

发现之前发不出去的图片传递给gocq的只是图片地址(能发的传递的是图片二进制),可能是没证书下载不下来。

这个猜测是不是因为验证证书失败然后 gocq 没有预料这种情况? 我无法验证这个说法,找不到获取图片的代码位置,找了将近40分钟,累死了

我认为是的。
可能是直接传递图片二进制的时候gocq到腾讯服务器的证书验证成功了(或者没验证之类的)所以能发;
而传递url的时候gocq还需要去原网址下载图片,在从图片服务器下载的过程中验证证书失败,返回错误信息。
(这方面的原理我确实不太懂,只是个人猜测)

我今天又看了一遍题主的问题觉得和我遇到的好像不太一样,他是发送成功了,但是仍然返回错误信息,我是图片发不出来+返回错误信息

@azmiao
Copy link

azmiao commented Oct 21, 2021

插眼,今天刚从miraiok过来,也遇到了这样的问题233333

@LXY1226
Copy link
Contributor

LXY1226 commented Oct 21, 2021

怎么才过来,OK都入坟了(

@azmiao
Copy link

azmiao commented Oct 21, 2021

怎么才过来,OK都入坟了(

ok可以装mirai-naitive,加载酷Q的dll插件,很早很早的酷Q有些数据不想迁移,所以就用ok+Native+dll了,有些dll是真的舍不得,今天想着正好有空,可以给hoshino写几个高仿那几个dll的插件

@Mrs4s
Copy link
Owner

Mrs4s commented Oct 21, 2021

如果是tx服务器,可以试试更换dns

@azmiao
Copy link

azmiao commented Oct 21, 2021

如果是tx服务器,可以试试更换dns

好耶,好像有效,等几个小时后看看还会不会出现2333

@syhanjin
Copy link
Author

如果是tx服务器,可以试试更换dns

我换了,可是没有用

@syhanjin
Copy link
Author

消息比较短的时候可以正常发送,但是长一点会出现这种问题,只限群消息,私聊不会出错,tx轻量应用4g2核,成都的

@Mrs4s
Copy link
Owner

Mrs4s commented Oct 22, 2021

如果是tx服务器,可以试试更换dns

我换了,可是没有用

请更换国内的DNS. 国外的DNS例如 8.8.8.8 已经被TX云污染掉了.

@syhanjin
Copy link
Author

好的已解决,可以多多试几个dns
101.6.6.6 223.6.6.6
我使用可行的两个dns

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug? The issue author think this is a bug
Projects
None yet
Development

No branches or pull requests

6 participants
@LXY1226 @Mrs4s @BesiegedCity @azmiao @syhanjin and others