bitcomet异常占用cpu

最近平板电脑异常发烫,检查发现是bitcomet占用了大量CPU,研究发现两个现象,可能是同一个原因引起的:1.即使上传下载速度为0,也会占用了大量CPU 2.退出软件后任务管理器查看进程还在且依旧占用CPU。
如下是通过AI分析dmp文件的原因: 1. 线程 0 (ID: f34) - 主线程 (被阻塞)

  • 状态 : 卡在 ntdll!NtWaitForMultipleObjects+0x14
  • 原因 : 这是问题的表象 。主线程正在调用 WaitForMultipleObjectsEx ,等待一个或多个子线程的句柄发出信号(即线程结束)。因为它等不到,所以自己被挂起。
  1. 线程 7 (ID: 27dc) - “DnsQuery” 线程 (被阻塞)
  • 状态 : 卡在 BitComet+0x19559e 。这是一个BitComet内部的函数,它之上是 BitComet+0x5433a2BitComet+0x539c89 。这个调用链与网络操作密切相关。
  • 根本原因 : 这个负责DNS查询的线程没有在等待退出信号,而是卡在了BitComet内部的网络操作函数中 。它很可能正在执行一个DNS查询或类似的网络操作,但这个操作由于某种原因没有返回 。这可能是因为:
    • 一个质量很差的DNS服务器没有响应。
    • 一个防火墙/安全软件拦截了DNS流量但没有正确返回错误。
    • BitComet自身的网络代码在处理特定响应时存在Bug,进入了死循环或死锁。
  1. 线程 9 (ID: 12f0) - “MojoThread” 线程 (被阻塞)
  • 状态 : 卡在 ntdll!NtRemoveIoCompletion+0x14KERNELBASE!GetQueuedCompletionStatus+0x4f
  • 模块 : 这个线程不属于BitComet主程序,而是属于 EmbeddedBrowserWebView 模块。
  • 根本原因 : 这是最关键的发现 。"Mojo"是Chromium项目使用的进程间通信系统的名称。这个线程明确表明BitComet内嵌了一个基于Chromium的浏览器组件 (极大概率用于显示软件内的广告、新闻、种子详情页等)。
  • 该线程正在等待一个I/O完成端口(I/O Completion Port)上的消息。它调用 GetQueuedCompletionStatus永远没有收到任何消息 。这强烈表明:
    • 该浏览器组件正在等待一个网络请求(可能是广告请求)的返回,但这个请求被无限期挂起了。
    • 或者,该组件的清理逻辑存在Bug,未能正确地向工作线程发送退出消息。
1個讚

2.17测试版中已修复

好的,感谢告知,顺便咨询一下win客户端登录账号没效果这个有解吗,挂不挂代理都一样

确保此选项已经勾选,登录才会经过代理服务器

在代理服务器上抓包:

  • 代理连接正常 :与代理服务器连接成功
  • 数据通过代理转发 :代理服务器成功与157.180.22.166:25477(登陆账号时访问的地址)建立连接
  • 服务器响应不同 :服务器返回了106字节数据后发送FIN包
    我本地是能telnet通members.bitcomet.com(157.180.22.166)的25477端口,不挂代理能从网页版登陆账号,所以理论上不用挂代理客户端也应该能登陆,但实际上也不行

你发的结果代表网络是正常的,无需使用代理也可以正常进行登录,你这登录不了提示什么错误信息,有截图吗?

没有错误提示,点击登录按钮后,显示正在登录
image
,然后变为登录前的状态
image

登录错误信息显示在侧收藏夹的左下角里,如果未显示左侧收藏夹,点击按钮即可显示
image

好吧,居然藏在这里。。现在可以,感谢 :joy:(不过还是挺奇怪的,最开始登陆不上的时候是有尝试重新输密码的)

所以提示的错误信息是密码错误吗

这次是的,我查了下邮件,以前有次重置过密码(当时使用旧密码登陆不上网页版)。不知道是真的记错密码,还是后台数据库有动过密码。话说登陆失败提示密码错误不应该放在右下角登陆模块里吗或者跟输入账号密码一样弹窗。

请教一下楼主用的分析工具。我这边是CPU占用长期20%左右,Clash开tun模式的时候BitComet,它就不占那么多CPU,但是Clash的CPU使用率就上去了。我很想知道中间发生了些什么,是不是有些连接一直在失败一直在重试之类的。

其实我也不会用 :joy: ,问的deepseek,你可以试试。我查询了一下tun模式跟我用的proxifier有点类似,适合无法设置代理的非HTTP应用,如果应用本身支持代理设置,那么不建议开启tun模式。dns解析也走代理的话,可能就会发生跟我一样的cpu异常问题。分析dmp文件用的是windbg,任务管理器里进程上右键创建转储文件。分析网络线程用的是Process Explorer,可以观察到连续有红色的dns查询。

感谢,我也用windbg看看

我知道,这个勾选了的。socks5和http都不行

我把“network.enable_open_dns”改成了否,然后为了安装Windows更新重启了电脑,之后BitComet的CPU占用看起来正常了,保持在3%以下

高级设置里每个选项的作用,有相关文档吗,multi_peers_same_ip这个我不记得为什么我把他设置为否了。

wiki有的

程序界面上也有中文提示