-
Notifications
You must be signed in to change notification settings - Fork 16
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
启动MiraiCQ之后一段时间,会出现cpu占用率较高且日志空白无响应的问题 #18
Comments
感觉很奇怪...那个心跳理论上没用,建议关闭。 |
@super1207 好的,在收到你这条回复之后,我将两个MiraiCQ均替换为了action里面最新的版本,同时清空了log文件夹,然后启动了两个MiraiCQ并运行,之后过了大概十分钟左右,两个MiraiCQ同时卡死(基本上每次两个MiraiCQ都是同时卡死的),问题复现,然后我将两个MiraiCQ关闭,分别压缩了两个MiraiCQ的log文件夹,将其放到了附件里面,我自己看不太懂日志,可能需要麻烦大佬你这边帮忙看一下,关于你说的第4点,我会进行测试对照的,不过这可能需要一些时间,晚一点我会再反馈结果的。 编辑补充一下,刚刚我按大佬的建议把心跳关闭之后,发现问题的出现频率明显提升了很多,基本上是启动MiraiCQ后几分钟就卡死了,然后我测试了一下一次只启动一个MiraiCQ,问题仍然可以复现,所以应该也可以排除两个MiraiCQ互相干扰导致出现问题的因素了 |
@super1207 后续测试结果反馈
|
@byx2020 好奇怪...我这边完全没法复现(一台win11的笔记本) |
@super1207 好的,我会单开一个新的gocq+MiraiCQ并使用新qq来测试的,晚一点给你反馈结果。 我用的是腾讯云服务器,实际上这个问题我这边也是在这几天才突然出现,之前都很正常,印象中最近这段时间也没有做什么特别的操作,所以才一直找不到原因。 |
@super1207 出结果了,看起来好像真的和机器人接收到的消息有关,简单说明一下下图
将这四个MiraiCQ同时运行一段时间后,群相同的MiraiCQ0、MiraiCQ4、MiraiCQ5同时出现了问题,而群不同的MiraiCQ3没有受到影响,仍然可以正常运行。 如果有进一步的测试方案,可以提出让我这边继续进行。 并附上在本次实验中未安装任何插件的MiraiCQ5的完整日志文件(MiraiCQ0、MiraiCQ4和MiraiCQ5的日志基本相同)。
|
MiraiCQ的自身的Log不够详细,没法找出卡住的原因。用这个工具记录下MiraiCQ卡住前后的log |
@super1207 行,已经挂着了 |
问题原因已经找到,原因是收到了含有'\0'的utf8字符串,导致MiraiCQ解析出错。 |
2.3.9 已修复 |
此问题出现时的表现形式为,MiraiCQ不会收到和响应任何消息(go-cqhttp是一切正常的),打开MiraiCQ的详细设置界面,没有任何日志(如图三所示),界面一片空白(正常运行时会有很多日志),再打开任务管理器,可以看到MiraiCQ的前后台程序的cpu占用和内存占用都存在比较明显的异常(如图一和图二所示),通过手动重启MiraiCQ可以在短时间内恢复正常,但一般在几分钟后就又会出现此问题。
需要说明的一点是,此问题的具体出现时间应该是在最近三天内才开始出现的,之前我已经正常使用了MiraiCQ(2.3.8)将近一个月左右,都没有遇到过这个问题。
在问题发生后,我尝试通过将插件依次卸载后再启动MiraiCQ的方式来定位问题原因,最后发现将任何一个插件单独卸载都不会影响到问题的出现(总共就两个插件),所以应该不是插件的问题。
于是我尝试删掉MiraiCQ和go-cqhttp的所有数据和缓存文件,再重新启动MiraiCQ和go-cqhttp,但在运行一段时间后,问题还是出现了。
然后我看到MiraiCQ的日志都是空白,开始怀疑是不是由于MiraiCQ和go-cqhttp之间的通信连接断开导致的,于是去把go-cqhttp配置项里面的心跳频率从默认的1秒5次改成了1秒50次(如图四所示),改了之后,好像确实有了一点点效果,原来在启动MiraiCQ几分钟后就会出现卡死日志空白的问题,现在需要几十分钟才会出现了,但是问题还是没有得到解决。
一时间我也想不到其他解决问题的思路了,所以不得不再来打扰一下开发者大佬,有没有什么解决这个问题的办法或方案,可以让我去尝试一下。
以下为插件运行环境信息:
服务器配置:4C4G
操作系统:Windows Server 2012 R2 DataCenter 64bitCN
go-cqhttp版本:1.0.0-rc3
MiraiCQ版本:2.3.8
其他说明:如果大佬需要更多信息或协助,也可以让我进行提供
图片说明:由于最近qq经常封号,所以我给机器人准备了两个号,各自运行一部分的功能,降低由于发消息太多被qq屏蔽的概率,因此是同时运行的两个MiraiCQ,机器人一个号一个MiraiCQ,本次问题是两个MiraiCQ同时出现的。
![image](https://user-images.githubusercontent.com/58938653/178419515-d545d4c7-3855-41b2-846b-3e262e2acbcc.png)
![image](https://user-images.githubusercontent.com/58938653/178419633-4d929e78-52b3-4dcc-9c40-6622fc29a935.png)
![image](https://user-images.githubusercontent.com/58938653/178420863-b5b75081-db95-49dc-8cd1-229f27f1f57a.png)
![image](https://user-images.githubusercontent.com/58938653/178421114-ad4a40be-1b6d-4854-84d3-1fef64730a4e.png)
The text was updated successfully, but these errors were encountered: