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

提供可选项用于禁止守护进程自动重启算法服务 #1269

Closed
hegotit opened this issue May 28, 2024 · 14 comments
Closed

提供可选项用于禁止守护进程自动重启算法服务 #1269

hegotit opened this issue May 28, 2024 · 14 comments

Comments

@hegotit
Copy link

hegotit commented May 28, 2024

上报前请检查

  • [✅] 我遇到的问题没有其他人在 issue 里提到过
  • [✅] 我的小狼毫版本于 rime/weasel 下载
  • [✅] 我在使用小狼毫的最新发布版本,或最新发布版本后的 CI 构建

操作系统信息

  • OS 详细版本: Windows 11 23H2 22631.3593
  • 小狼毫版本: 6a68382

描述遇到的问题
压缩用户文件夹目录下文件时,小狼毫有进程占用,右键菜单“退出算法服务”后,过了一会儿又自动重启,而且导致Windows资源管理器和Chrome都出现无响应状态,且持续时间较长,没有自动停止迹象,最后在任务管理器中结束算法服务,无响应状态回复正常。切换到其他输入法后,自动重启方才停止,可正常压缩用户文件夹下内容。

复现步骤
重现问题的步骤,如:

  1. 右键菜单“退出算法服务”
  2. 在Chrome中编辑
  3. Chrome进入无响应状态

预期行为
1.用户手动右键点击菜单“退出算法服务”,不应当让守护进程自动重启服务。或者另设右键菜单选项“退出算法服务(不自动重启)”
2.守护进程自动重启添加处理时长限制,重启异常应自动停止,否则Windows资源管理器、Chrome这类程序持续卡死或崩溃更影响观感。

dmp文件
rime.weasel.zip

@fxliang
Copy link
Contributor

fxliang commented May 28, 2024

未复现问题

请参照#1259 ,将nightly的debug_symbols.7z里的rime.pdb和WeaselServer.pdb两个文件放到D:\SoftwareInstalled\Rime\weasel-0.16.0下,运行下分析。

您上传的几个dmp文件,只有其中一个有一点信息可能有一点点用,提示定位的问题在rime.dll中,请排查如果不使用雾凇方案是否可复现问题

image

@fxliang
Copy link
Contributor

fxliang commented May 28, 2024

至于提供可选项来禁用“守护”,这个似乎未有相关吧

目前的逻辑是退出之后留下三个按键的操作空间可能供切换到其他输入法。

另外开选项这个改动太太,容易引入不明确的问题,暂不考虑。

@fxliang
Copy link
Contributor

fxliang commented May 28, 2024

image
image

@mirtlebot
Copy link

mirtlebot commented May 29, 2024

#1235 (comment)

看到这个突然想到稳定复现方法了,试了三四次,情况不太一样

关键步骤大概是让小狼毫处于部署状态。然后打字,Weasel Server 被不断拉起(视频中一瞬间,看到有出现两个 Weasel Server)

会有各种意外情况,卡死是其中一种

  1. 虚拟机,全新系统,新装小狼毫, 选择一个方案启用,安装完成,重启系统
  2. 通过「输入法设定」,再开启数个方案,让小狼毫进入一段时间的部署模式
  3. 在记事本上打字(此时小狼毫还在部署)
  4. 当前应用卡死 / 小狼毫报错,被强制退出(没发现 dmp)/ 拉起一个没有日志的小狼毫
default.mp4

@fxliang
Copy link
Contributor

fxliang commented May 29, 2024

#1271

看看这个,加了一点东西让WeaselDeployer.exe运行的时候禁用守护

#1235 (comment)

看到这个突然想到稳定复现方法了,试了三四次,情况不太一样

关键步骤大概是让小狼毫处于部署状态。然后打字,Weasel Server 被不断拉起(视频中一瞬间,看到有出现两个 Weasel Server)

会有各种意外情况,卡死是其中一种

  1. 虚拟机,全新系统,新装小狼毫, 选择一个方案启用,安装完成,重启系统
  2. 通过「输入法设定」,再开启数个方案,让小狼毫进入一段时间的部署模式
  3. 在记事本上打字(此时小狼毫还在部署)
  4. 当前应用卡死 / 小狼毫报错,被强制退出(没发现 dmp)/ 拉起一个没有日志的小狼毫

default.mp4

@mirtlebot
Copy link

mirtlebot commented May 29, 2024

我用 PR 的产物试了两三次,仍然试出一次短暂 3 s 的整个系统卡死(随着部署成功恢复正常,我记得没加守护前也这样。

但无日志 Server 仍然可以 100% 复现。

让 OP 来试吧,我虚拟机是 Atlas 精简系统,不一定准确。我也在 #1234 合并后,再也没碰到过崩溃了,不清楚 OP 日志中崩溃的原因。

P.S. 如果是这种卡顿,雾凇大词库一次部署可能需要一分钟上下,因而会卡这么久
P.P.S. PR 的目的实现了,Deploy 时,我测试了下,确实不再拉起 Server

@fxliang
Copy link
Contributor

fxliang commented May 29, 2024

我用 PR 的产物试了两三次,仍然试出一次短暂 3 s 的整个系统卡死(随着部署成功恢复正常,我记得没加守护前也这样。

但无日志 Server 仍然可以 100% 复现。

让 OP 来试吧,我虚拟机是 Atlas 精简系统,不一定准确。我也在 #1234 合并后,再也没碰到过崩溃了,不清楚 OP 日志中崩溃的原因。

P.S. 如果是这种卡顿,雾凇大词库一次部署可能需要一分钟上下,因而会卡这么久 P.P.S. PR 的目的实现了,Deploy 时,我测试了下,确实不再拉起 Server

我相信 #1276 解决了您提的这种问题

@mirtlebot
Copy link

可怕,就像佛振给您开工资一样高效率

@mirtlebot
Copy link

mirtlebot commented May 29, 2024

简单试了两次,没有卡死的现象了

Update 2024.05.31:无 log 依旧,卡死不太确定有没有消失,因为原先就是不稳定复现。

我用 PR 的产物试了两三次,仍然试出一次短暂 3 s 的整个系统卡死(随着部署成功恢复正常,我记得没加守护前也这样。
但无日志 Server 仍然可以 100% 复现。
让 OP 来试吧,我虚拟机是 Atlas 精简系统,不一定准确。我也在 #1234 合并后,再也没碰到过崩溃了,不清楚 OP 日志中崩溃的原因。
P.S. 如果是这种卡顿,雾凇大词库一次部署可能需要一分钟上下,因而会卡这么久 P.P.S. PR 的目的实现了,Deploy 时,我测试了下,确实不再拉起 Server

我相信 #1276 解决了您提的这种问题

@fxliang
Copy link
Contributor

fxliang commented May 31, 2024

@hegotit 早前修Chrome相关的处理的时候,顺便产生的效果是如果你用Ctrl+space关闭键盘,就会禁用守护了(关闭键盘的应用里比如当前所述的Chrome),此issue关闭了

@fxliang fxliang closed this as completed May 31, 2024
@fxliang
Copy link
Contributor

fxliang commented Jun 1, 2024

Update 2024.05.31:无 log 依旧,卡死不太确定有没有消失,因为原先就是不稳定复现。

fixed by 8246b8c

@mirtlebot
Copy link

@fxliang

我试了一两个小时,找到了复现这个问题的稳定办法。最新 Nightly build 还是会卡死,也有 debug 文件。

不过看了 DebugDiag issue 那个,没搞懂怎么分析,提示无法生成错误报告。

环境:虚拟机(Win10 22H2 Atlas OS,之前未装小狼毫) + Weasel Nightly build + 雾凇拼音
复现条件:雾凇拼音,让 WeaselServer 被拉起来的时候,进入部署状态。
复现步骤:

  1. 安装 Weasel,安装雾凇拼音,部署,确认一切 OK
  2. 对中文词典做一些更改,例如注释掉一个条目,加一个 dict 之类(因为中文词典特别大,部署时间长)
  3. 手动退出算法服务
  4. 打字
  5. 卡死,日志文件夹中出现 debug。
2024.06.01.16.22.webm

(视频中截了一段,是因为第一次实验,整个系统卡死了,我乱点后,直接被强退了,上面的 error log 显示未编译完成)

@mirtlebot
Copy link

要是你也能试出这个问题的能话,

我猜有些开机不能启动的用户的问题是:

  • 开机启动
  • 小狼毫是默认输入法
  • 随便按了些按键
  • WeaselServer 拉起,进入了部署状态,然后 Server 就退;

之所以会进入部署状态,可能是有一些人喜欢用第三方软件往词库里面加词(lua 也可以做到),这些东西都需要重新部署

个人猜测和 lua 写的好不好关联不大,毕竟上述实验,一个字都没打上,如果真的是分析和 lua 相关,那只能说在乱打的时候, lua 做了什么事情,或者在卡死后,lua 没做什么事情。

@fxliang
Copy link
Contributor

fxliang commented Jun 1, 2024

另外开个issue吧,理论上我已经给Client加了超时了。。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants