PBH-BTN / PeerBanHelper

BT 反吸血工具 - 自动封禁不受欢迎、吸血和异常的 BT 客户端,并支持自定义规则。PeerId黑名单/UserAgent黑名单/IP CIDR/假进度/超量下载/进度回退/多播追猎/连锁封禁/伪装检测 支持 qBittorrent/Transmission/Deluge/BiglyBT/Vuze(Azureus)/BitComet
GNU General Public License v3.0
1.86k stars 66 forks source link

[BUG] BitComet 使用HTTP下载功能出现日志重复报错和Bitcomet频繁通知 #564

Closed Huiaei closed 2 weeks ago

Huiaei commented 2 weeks ago

版本号 - Version

v6.4.1

操作系统平台和系统架构 - OS and CPU Arch

Windows 10 企业版 LTSC 21H2 19044.4894 x64 PBH v6.4.1 Bitcomet 20240928

部署方式 - Deploy methods

添加的下载器 - Added Downloaders

问题描述 - Issue Description

在Bitcomet添加HTTP下载并开始下载后,PeerBanHelper出现报错,Bitcomet间隔持续输出web链接通知

复现步骤 - Reproduce steps

  1. Bitcomet、PBH正常初始化开启
  2. 向Bitcomet添加一个HTTP下载
  3. 出现错误

截图/日志文件 - Screenshot / Logs

  1. Bitcomet通知 Snipaste_2024-10-07_00-30-01
  2. PBH 报错log
    [00:30:52] [main/INFO]: Loading configuration...
    [00:30:52] [main/INFO]: PeerBanHelper data directory: U:\app\PeerBanHelper-下载器工具\data
    [00:30:52] [main/INFO]: Checking configuration...
    [00:30:52] [main/INFO]: Saving configuration changes...
    [00:30:52] [main/INFO]: Checking configuration...
    [00:30:52] [main/INFO]: Saving configuration changes...
    [00:30:52] [main/INFO]: Current system language tag: zh-CN
    [00:30:55] [main/INFO]: Loading application context, this may need a while on low-end devices, please wait...
    [00:30:55] [JavaFX Application Thread/INFO]: Loading up translations, this may need a while...
    [00:30:56] [main/INFO]: PeerBanHelper SQLite Connection Pool - Starting...
    [00:30:56] [main/INFO]: PeerBanHelper SQLite Connection Pool - Added connection org.sqlite.jdbc4.JDBC4Connection@73c31181
    [00:30:56] [main/INFO]: PeerBanHelper SQLite Connection Pool - Start completed.
    [00:30:56] [main/INFO]: 捐赠密钥激活成功!感谢捐赠!授权给:xxxxxxxxxxxxxxxxxxxxxxxxxxx (PBH-BTN ALIS),过期时间:2124-09-11 21:22:32
    [00:30:56] [main/INFO]: [BTN 网络] 请等待我们连接到 BTN 网络……
    [00:30:58] [main/INFO]: [BTN 网络] 功能已启用
    [00:30:58] [main/INFO]: EcoQoS API 加载成功,Windows 效率模式已应用至 PeerBanHelper 以降低系统能耗
    [00:30:59] [main/INFO]: PeerBanHelper v6.4.1 - by PBH-BTN Community, Made with ❤
    [00:30:59] [main/INFO]:  + BitComet -> LocalBC (http://localhost:11448)
    [00:30:59] [main/INFO]: [注册] IP Blacklist
    [00:30:59] [main/INFO]: [注册] PeerId Blacklist
    [00:30:59] [main/INFO]: [注册] ClientName Blacklist
    [00:30:59] [main/INFO]: 已成功编译 4 条用户脚本,耗时 22ms
    [00:30:59] [main/INFO]: [注册] Expression Engine
    [00:30:59] [main/INFO]: [注册] Progress Cheat Blocker
    [00:30:59] [main/INFO]: [注册] Multi Dialing Blocker
    [00:30:59] [main/INFO]: [注册] Auto Range Ban
    [00:30:59] [main/INFO]: [注册] BTN Network Online Rules
    [00:30:59] [main/INFO]: [注册] WebAPI - Downloader CIDR Blocklist
    [00:30:59] [main/INFO]: [注册] IP Blacklist Rule List
    [00:30:59] [main/INFO]: [注册] WebAPI - Metrics
    [00:30:59] [main/INFO]: [注册] WebAPI - PBH Ban API
    [00:30:59] [main/INFO]: [注册] WebAPI - Metadata
    [00:30:59] [main/INFO]: [注册] WebAPI - Downloader API
    [00:30:59] [main/INFO]: [注册] WebAPI - Rule Subscription
    [00:30:59] [main/INFO]: [注册] WebAPI - Authenticate
    [00:30:59] [main/INFO]: [注册] WebAPI - Logs
    [00:30:59] [/INFO]: [数据清理] ActiveMonitoring 正在清理过期数据,这可能需要一点时间……
    [00:30:59] [main/INFO]: [注册] Active Monitoring
    [00:30:59] [main/INFO]: [注册] WebAPI - PBH Plus Interface
    [00:30:59] [main/INFO]: [注册] WebAPI - OOBE Interface
    [00:30:59] [main/INFO]: [注册] WebAPI - Charts
    [00:30:59] [main/INFO]: [注册] WebAPI - General
    [00:30:59] [main/INFO]: [注册] Torrent Controller
    [00:30:59] [main/INFO]: [注册] Peer Controller
    [00:30:59] [main/INFO]: Starting Javalin ...
    [00:30:59] [main/INFO]: jetty-11.0.23; built: 2024-08-14T01:40:17.906Z; git: 6fcf5ccaebd7ca13a0cb96c96adca699a24080a0; jvm 21.0.4+7-LTS
    [00:30:59] [main/INFO]: Session workerName=node0
    [00:30:59] [/INFO]: [数据清理] ActiveMonitoring 已删除了 0 条过期数据
    [00:30:59] [main/INFO]: Started o.e.j.s.ServletContextHandler@74bbc273{/,null,AVAILABLE}
    [00:30:59] [main/INFO]: Started ServerConnector@4b343b6d{HTTP/1.1, (http/1.1)}{0.0.0.0:9898}
    [00:30:59] [main/INFO]: Started Server@58e02359{STARTING}[11.0.23,sto=0] @8228ms
    [00:30:59] [main/INFO]: Javalin started in 200ms \o/
    [00:30:59] [main/INFO]: Static file handler added: StaticFileConfig(hostedPath=/, directory=/static, location=CLASSPATH, precompress=false, aliasCheck=null, headers={Cache-Control=max-age=0}, skipFileFunction=com.ghostchu.peerbanhelper.web.JavalinWebContainer$$Lambda/0x000002122965d630@61554b6b, mimeTypes={}). File system location: 'jar:file:/U:/app/PeerBanHelper-%e4%b8%8b%e8%bd%bd%e5%99%a8%e5%b7%a5%e5%85%b7/PeerBanHelper.jar!/static/'
    [00:30:59] [main/INFO]: Listening on http://localhost:9898/
    [00:30:59] [main/INFO]: You are running Javalin 6.3.0 (released August 22, 2024).
    [00:30:59] [main/INFO]: [封禁] 已从保存的封禁列表缓存文件中恢复了 260 个封禁项
    [00:31:00] [main/INFO]: PeerBanHelper BanWave Daemon 已启动
    [00:31:00] [Ban Wave/INFO]: 已检查 1 个下载器的 5 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (234ms)
    [00:31:05] [Ban Wave/INFO]: 已检查 1 个下载器的 5 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (217ms)
    [00:31:10] [/INFO]: [保存] 已成功保存 260 条封禁数据到数据库
    [00:31:10] [Ban Wave/INFO]: 已检查 1 个下载器的 5 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (212ms)
    [00:31:16] [/ERROR]: 发生了一个未处理的异常,请反馈给 PeerBanHelper 开发者,此错误已被跳过……
    java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "com.ghostchu.peerbanhelper.downloader.impl.bitcomet.resp.BCTaskTorrentResponse$TaskDetailDTO.getTorrentPrivate()" is null
    at com.ghostchu.peerbanhelper.downloader.impl.bitcomet.BitComet.lambda$getTorrents$1(BitComet.java:266) ~[PeerBanHelper.jar:6.4.1]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?]
    at com.ghostchu.peerbanhelper.downloader.impl.bitcomet.BitComet.getTorrents(BitComet.java:267) ~[PeerBanHelper.jar:6.4.1]
    at com.ghostchu.peerbanhelper.PeerBanHelperServer.collectPeers(PeerBanHelperServer.java:689) ~[PeerBanHelper.jar:6.4.1]
    at com.ghostchu.peerbanhelper.PeerBanHelperServer.lambda$collectPeers$30(PeerBanHelperServer.java:668) ~[PeerBanHelper.jar:6.4.1]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
    at java.base/java.lang.VirtualThread.run(Unknown Source) ~[?:?]
    [00:31:16] [Ban Wave/INFO]: 已检查 0 个下载器的 0 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (443ms)
    [00:31:28] [/ERROR]: 发生了一个未处理的异常,请反馈给 PeerBanHelper 开发者,此错误已被跳过……
    java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "com.ghostchu.peerbanhelper.downloader.impl.bitcomet.resp.BCTaskTorrentResponse$TaskDetailDTO.getTorrentPrivate()" is null
    at com.ghostchu.peerbanhelper.downloader.impl.bitcomet.BitComet.lambda$getTorrents$1(BitComet.java:266) ~[PeerBanHelper.jar:6.4.1]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?]
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?]
    at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?]
    at com.ghostchu.peerbanhelper.downloader.impl.bitcomet.BitComet.getTorrents(BitComet.java:267) ~[PeerBanHelper.jar:6.4.1]
    at com.ghostchu.peerbanhelper.PeerBanHelperServer.collectPeers(PeerBanHelperServer.java:689) ~[PeerBanHelper.jar:6.4.1]
    at com.ghostchu.peerbanhelper.PeerBanHelperServer.lambda$collectPeers$30(PeerBanHelperServer.java:668) ~[PeerBanHelper.jar:6.4.1]
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:?]
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
    at java.base/java.lang.VirtualThread.run(Unknown Source) ~[?:?]
    [00:31:28] [Ban Wave/INFO]: 已检查 0 个下载器的 0 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (6945ms)
    [00:31:33] [Ban Wave/INFO]: 已检查 1 个下载器的 5 个活跃 Torrent 与 0 个 Peers。共封禁 0 个 Peers,并解除 0 个过期的封禁 (245ms)

额外信息 - Addition Information

首先发现于v6.4.0,后更新v6.4.1重试依旧复现。还有这个表单“添加的下载器 - Added Downloaders”这一项没有Bitcomet

检查清单 - Check list

Ghost-chu commented 2 weeks ago

BitComet 目前支持是实验性的,官方没有给出太多有关 API 的更多文档,目前只能试错。
感谢你会报告该问题,我们会对 HTTP 任务也进行适配。