-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[Bug]: 签名服务器的TCP链接没有正确结束导致系统缓冲区空间不足或队列已满 #2368
Comments
补充说明,可能是没有关闭链接? |
增加对 client 的利用,避免创建过多 clients
可能是WithTimeout每次都新建了一个client导致的(?),试试这个 https://github.com/1umine/go-cqhttp/actions/runs/5841440190 |
目前测试下来 |
我的方案似乎不行,你看看你运行一段时间会不会导致qsign那边jvm空指针报错( |
可能是频繁关闭连接创建连接导致的吧。 我运行了一上午,没出问题,netstat 结果和有 WithTimeout 之前的表现是一致的。 |
没办法了,先去qsign那边提交个issue看是啥问题,我自己看不出来了 |
可能是qsign会复用已有的连接,然后这边请求完之后空闲连接立刻就被关闭了,qsign还留着连接以为没关想继续用,然后导致了异常。 |
换dev版本测了一个下午..好像不是我代码的问题( |
好像确实是 qsign 的问题,9h 后崩了,似乎是在 unidbg 这块出了问题,与网络关系不是很大
|
我自己测下来很随机,有时十分钟,有时几个小时 |
* fix: skip callback error * update: update comment * change the logic of callback and auto-register * add token update prompt. * fix log buffer string * fix #2368 增加对 client 的利用,避免创建过多 clients * refactor: wrap sign request * feat: impl additional sign servers configuration * fix error in using configurations. * fix lint error * 支持切换回主签名服务器 * feat: support different key and auth * optimize: find avaliable sign-server * fix: register instance after server is changed * fix lint error * update: add config 'sync-check-servers' * update: first check master sign-server, or wait 3s * add checking log & optimize wait for checking done * fix wrong judge * add config: rule for changing sign server * optimize registration logic after changing server * add some log * fix #2390 * resolve requested changes in #2389 * update dependency * fix lint error 'idx is unused' * refactor: extract sync check and async check logic * delete async check sign-server
请确保您已阅读以上注意事项,并勾选下方的确认框。
go-cqhttp 版本
94a3ff5
运行环境
Windows (64)
运行架构
x86
连接方式
WebSocket (反向)
使用协议
6 | aPad
重现步骤
BUG说明:
在使用一段时间后出现系统缓冲区空间不足或队列已满,导致无法正常服务。
(其他出现问题的人也可以临时使用注册表在HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters新增MaxUserPort,Dword格式,不设置时默认5000,你可以设置为十进制65543)
在cmd使用以下指令查看建立的链接数:
netstat -n | find /C /I "established"
结果显示占用了2万多个TCP端口,都是由192.168.1.5(本机)连接向127.0.0.1:8080(签名服务器)的。
看了Fix: SignServer TCP ping for custom port #2353貌似修的不是这个BUG。
重现步骤:
1、使用windows版本的qsign1.1.7,在本机环境搭建签名服务器。
2、Windows环境(cmd控制台)下运行gocq(94a3ff5)连接上签名服务器。
3、机器人正常收发消息使用,占用的端口数会逐渐增加。
期望的结果是什么?
不知道是qsign还是gocq的问题,总之报告下
实际的结果是什么?
正确处理TCP连接
简单的复现代码/链接(可选)
No response
日志记录(可选)
补充说明(可选)
No response
The text was updated successfully, but these errors were encountered: