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

[BUG] 软件自动退出 #763

Closed
7 of 18 tasks
Clackz opened this issue Nov 22, 2024 · 13 comments
Closed
7 of 18 tasks

[BUG] 软件自动退出 #763

Clackz opened this issue Nov 22, 2024 · 13 comments
Labels
bug 程序错误,有什么东西无法正常工作 priority: medium 中优先级

Comments

@Clackz
Copy link

Clackz commented Nov 22, 2024

版本号 - Version

7.1.4

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

Windows

部署方式 - Deploy methods

  • Windows .exe 安装程序 (Windows .exe Installer)
  • Windows .zip 绿色部署包 (Windows .zip Portable)
  • Docker
  • JAR 包直接启动 (Start via .JAR directly)
  • 群晖 DSM 套件 (Synology .spk package)
  • Debian 软件包 (Debian .deb package)
  • RedHat/Fedora 软件包 (RedHat/Fedora .rpm package)

添加的下载器 - Added Downloaders

  • qBittorrent
  • BiglyBT/Azureus/Vuze
  • Deluge
  • Transmission
  • BitComet

问题描述 - Issue Description

软件挂在后台会自己退出,目前不知道原因

复现步骤 - Reproduce steps

软件没有打开前台界面挂在后台时,会自己退出,如以下截图,软件在20号时自己退出了,我22号发现退出了才重新打开,翻看日志没找到报错信息,不知道原因

截图/日志文件 - Screenshot / Logs

图片

额外信息 - Addition Information

No response

检查清单 - Check list

  • PeerBanHelper 已更新到最新版本,非最新版本不接受任何错误反馈,任何非最新版本的 Issue 将被 立 刻 关 闭,不会有人给您提供任何支持 (I'm running the latest version of PBH that can be found in Github Relases, non-latest release won't receive any support)
  • 所添加的下载器已满足 README 中的前置要求(如版本号和插件)(The downloaders that I've added already satisfied the requirements (E.g install plugins/adapters))
  • 我已检查过 PBH 文档(特别是常见问题),且即使使用了搜索也没有找到与此有关的内容 (This not a question/or the question that not listed in README's FAQ or PBH WIKI)
  • 我没有检查这个检查清单,只是闭眼选中了所有的复选框,请关闭这个 Issue (I have not read these checkboxes and therefore I just ticked them all, Please close this issue)
  • 这不是一个安全漏洞,它可以被安全的公开报告。若需要报告安全漏洞,请在此报告 (This not a security related issue, can be safe report in public. If you want report a security exploit, please report it here)
  • 我同意遵守 PBH-BTN 包容性条约,不发布 “嘲讽、骂战、引战、开盒(有时也称为人肉搜索)、人身攻击、仇恨、暴力、侮辱性言辞、违法违规、黑灰产、危害国家安全、实施或帮助他人实施电信犯罪” 等内容。并已知晓如果仍旧发布了这些内容,我的账号将立刻从包括但不限于 PBH-BTN 组织、社交软件中封禁。所有主题、内容都将被立刻删除或折叠,撤销、删除和收回您所做出的一切贡献,并封禁 BTN 网络的中账号权限、排除您所提交的所有数据。在您违反相关规则时,PBH-BTN 将会将您的注册、登录、和最近访问的 IP 地址、电子邮件地址、以及其它可能追踪您或将您去匿名化的信息从定期删除转为永不删除,并在任何国家或地区的政府、公安机关或有关部门需要时无通知的提供这些数据。 (I agree to abide by the PBH-BTN Inclusivity Pact by not posting content such as “taunting, name-calling, war-mongering, open-boxing (sometimes referred to as mansplaining), personal attacks, hatred, violence, insulting language, illegal activities, black and grey business, endangering national security, and committing or assisting others in committing telecommunication crimes”. I am aware that if I continue to post such content, my account will be immediately banned from organizations including but not limited to PBH-BTN, social software. All topics and content will be immediately deleted or collapsed, all contributions will be revoked, deleted and retracted, and you will be banned from the BTN network and all data you have submitted will be excluded. In the event of a violation of these rules, PBH-BTN will delete your registration, login, and most recent IP address, email address, and any other information that may be used to track you or de-anonymize you from regular to permanent deletion, and will make this data available to the government, public security, or other relevant authorities without notice if they request it, no matter what country or region.)
@Ghost-chu
Copy link
Collaborator

Windows 使用 GUI 图形窗口模式运行时碰到分辨率更改有几率崩溃(例如 RDP 远程桌面、显卡驱动程序崩溃等),这是 Java 的 AWT 组件中的一个问题,但遗憾的是因为它是 JVM 本身的一个组件,因此超出了我们能修的范围。

最简单的解决方案是 NoGUI 模式运行

@Duck1998
Copy link

我的使用环境中涉及到 Moonlight 串流改变分辨率以及频繁断开显示器(实际上是自动关闭电视)的操作,在 NoGUI 模式同样有发现随机自动退出现象,而且未留下事件管理器报错,只能在相近时间见到 Windows Error Reporting 的 LiveKernelEvent。近期重装系统后如果继续发生我会收集足够多信息提交 Issue。
NoGUI 模式使用 Windows 终端中的 Powershell 7 启动,日常最小化在状态栏(终端的“最小化时在通知区域隐藏终端”)

日志节选,22:02 我手动重新打开了 NoGUI 模式的程序:

[21:05:52] [pool-2-thread-2/INFO]: [BTN 网络] 计划任务正在向 BTN 网络提交 Peer 活动历史记录,请稍等……
[21:05:55] [virtual-192262/INFO]: [BTN 网络] 已向 BTN 网络提交 12 个 Peer 活动历史记录,感谢您对 BTN 网络的支持!
[21:06:42] [pool-2-thread-2/INFO]: [BTN 网络] 计划任务正在向 BTN 网络提交自上次汇报以来新增的封禁条目,请稍等……
[21:06:43] [virtual-192783/INFO]: [BTN 网络] 已向 BTN 网络提交 3 个封禁记录,感谢您对 BTN 网络的支持!
[22:02:31] [main/INFO]: Loading configuration...
[22:02:31] [main/INFO]: PeerBanHelper data directory: C:\Users*****\AppData\Local\PeerBanHelper
[22:02:31] [main/INFO]: Checking configuration...
[22:02:31] [main/INFO]: Saving configuration changes...
[22:02:31] [main/INFO]: Checking configuration...
[22:02:31] [main/INFO]: Saving configuration changes...
[22:02:31] [main/INFO]: Current system language tag: zh-CN

22:02 时的报错,此时显示器是打开的
事件查看器1

21:10 的报错,疑似与 PBH 相关
事件查看器2

@Ghost-chu Ghost-chu added bug 程序错误,有什么东西无法正常工作 priority: medium 中优先级 labels Nov 24, 2024
@Ghost-chu
Copy link
Collaborator

估计得在 NoGUI 下完全禁用 AWT,晚点研究一下

@op200
Copy link

op200 commented Nov 24, 2024

Windows 使用 GUI 图形窗口模式运行时碰到分辨率更改有几率崩溃(例如 RDP 远程桌面、显卡驱动程序崩溃等),这是 Java 的 AWT 组件中的一个问题,但遗憾的是因为它是 JVM 本身的一个组件,因此超出了我们能修的范围。

最简单的解决方案是 NoGUI 模式运行

v6.4.8 中不存在这个bug,这个bug是 v7.x 中引入的

经过测试,不是在更改分辨率时崩溃,因为可以通过尝试连接 webui 判断程序还在不在运行

另外,一般是连接远程桌面隔了几天之后崩溃,期间内存无明显变化,可以排除内存泄漏问题

@Ghost-chu
Copy link
Collaborator

Windows 使用 GUI 图形窗口模式运行时碰到分辨率更改有几率崩溃(例如 RDP 远程桌面、显卡驱动程序崩溃等),这是 Java 的 AWT 组件中的一个问题,但遗憾的是因为它是 JVM 本身的一个组件,因此超出了我们能修的范围。
最简单的解决方案是 NoGUI 模式运行

v6.4.8 中不存在这个bug,这个bug是 v7.x 中引入的

经过测试,不是在更改分辨率时崩溃,因为可以通过尝试连接 webui 判断程序还在不在运行

另外,一般是连接远程桌面隔了几天之后崩溃,期间内存无明显变化,可以排除内存泄漏问题

这个问题是22-23版本的jvm一个漏洞的回归,等24版本发布pbh会继续跟进

@Duck1998
Copy link

找了个简单的自动重启 bat 脚本,正在测试是否可以作为临时解决方案。目前测试在任务管理器里手动结束进程后,10秒后能够重新调起 NoGUI.exe。

@echo off
:Start
"C:\Program Files\PeerBanHelper\PeerBanHelper-NoGUI.exe"
:: Wait 10 seconds before restarting.
TIMEOUT /T 10
GOTO:Start

另:Process Lasso 的“保持运行(自动重启)”功能反而无法正确调起,终端提示“您必须至少是主用户,才能启动该程序”。

@op200
Copy link

op200 commented Nov 25, 2024

找了个简单的自动重启 bat 脚本,正在测试是否可以作为临时解决方案。目前测试在任务管理器里手动结束进程后,10秒后能够重新调起 NoGUI.exe。

@echo off
:Start
"C:\Program Files\PeerBanHelper\PeerBanHelper-NoGUI.exe"
:: Wait 10 seconds before restarting.
TIMEOUT /T 10
GOTO:Start

另:Process Lasso 的“保持运行(自动重启)”功能反而无法正确调起,终端提示“您必须至少是主用户,才能启动该程序”。

不关闭GUI,只最小化GUI,程序就不会崩溃

@CreeperAWA
Copy link
Contributor

找了个简单的自动重启 bat 脚本,正在测试是否可以作为临时解决方案。目前测试在任务管理器里手动结束进程后,10秒后能够重新调起 NoGUI.exe。

@echo off
:Start
"C:\Program Files\PeerBanHelper\PeerBanHelper-NoGUI.exe"
:: Wait 10 seconds before restarting.
TIMEOUT /T 10
GOTO:Start

另:Process Lasso 的“保持运行(自动重启)”功能反而无法正确调起,终端提示“您必须至少是主用户,才能启动该程序”。

Process Lasso 的“保持运行(自动重启)”功能很奇妙,我到现在都不知道这玩意怎么用,启用了以后软件崩溃也不会自动启动,也没有提示(

@Gaojianli
Copy link
Member

找了个简单的自动重启 bat 脚本,正在测试是否可以作为临时解决方案。目前测试在任务管理器里手动结束进程后,10秒后能够重新调起 NoGUI.exe。

@echo off
:Start
"C:\Program Files\PeerBanHelper\PeerBanHelper-NoGUI.exe"
:: Wait 10 seconds before restarting.
TIMEOUT /T 10
GOTO:Start

另:Process Lasso 的“保持运行(自动重启)”功能反而无法正确调起,终端提示“您必须至少是主用户,才能启动该程序”。

这个脚本能修改一下吗?在监测到退出的时候保存一下日志,看下是否有日志留存了下来

@Duck1998
Copy link

这个脚本能修改一下吗?在监测到退出的时候保存一下日志,看下是否有日志留存了下来

脚本是无限循环运行的,因为 PBH 本身会实时写入日志,所以只需要关注 latest.log 里的启动相关字段的时间戳,就能知道是否发生过随机退出了。
例如这里是我在 18:57:57 主动结束进程触发的:

[18:57:53] [Ban Wave/INFO]: [解封] 解除了 1 个过期的对等体封禁
[18:58:07] [main/INFO]: Loading configuration...
[18:58:07] [main/INFO]: PeerBanHelper data directory: C:\Users\****\AppData\Local\PeerBanHelper
[18:58:07] [main/INFO]: Checking configuration...
[18:58:07] [main/INFO]: Saving configuration changes...

@Duck1998
Copy link

Duck1998 commented Nov 26, 2024

抓到崩溃日志了,此时我正在 Moonlight 串流中修改屏幕分辨率(显示器已关机断开),确实是 AWT 的问题。7.1.4 版本下 NoGUI 模式。
#763 (comment) 的自动重启脚本也成功重新调起了 PBH。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff5121b6b6, pid=23416, tid=21632
#
# JRE version: OpenJDK Runtime Environment (23.0.1 13) (build 23.0.1 13)
# Java VM: OpenJDK 64-Bit Server VM (23.0.1 13, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# C  [awt.dll 0xdb6b6]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\***\AppData\Local\Temp\\hs_err_pid23416.log
[21521.302s][warning][os] Loading hsdis library failed
#
# If you would like to submit a bug report, please visit:
#   https://bell-sw.com/support
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Waiting for  0 seconds, press a key to continue ...

@op200
Copy link

op200 commented Dec 26, 2024

7.2.2 依旧存在类似闪退问题 @Ghost-chu

日志中没看到异常,似乎是突然中断

@Ghost-chu
Copy link
Collaborator

7.2.2 依旧存在类似闪退问题 @Ghost-chu

日志中没看到异常,似乎是突然中断

开始菜单中使用 NoGUI 启动,在 Java 24 推出之前这个问题都无法得到修复。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 程序错误,有什么东西无法正常工作 priority: medium 中优先级
Projects
None yet
Development

No branches or pull requests

6 participants