Closed mirtlebot closed 1 month ago
用最新的master的状态,雾凇拼音 步骤: 1,部署,正常可打字 2,修改字典注释掉一个字 3,部署 4,退出服务 5,记事本中打字
未复现问题😅
嗯,试试开启一个大字表呢,那个 44418 字表,那个应该要部署一段时间
我试了三次,都有卡死现象才提的
一样没有复现问题, Windows 10 LTSC 测试的,版本号10.0.19044 暂缺 Build 19044
部署多长时间影响不大,我试过有空明码部署(完整一次要接近1分钟),删除全部部署好的空明码的文件然后部署,打字也没有卡死
最新的代码中,从Client发出的消息,如果超时2秒会强制返回0,按理说不会有可能卡死。 https://github.com/rime/weasel/blob/8246b8c511d19a788935ee0b1e295fecc34a78c6/WeaselIPC/WeaselClientImpl.cpp#L195-L215
在处理按键过程中,如果返回0就意味着这个按键事件 rime不处理,直接会跳过相关输入法相关的处理直接将按键交给应用处理,就是直接上屏的状态 https://github.com/rime/weasel/blob/8246b8c511d19a788935ee0b1e295fecc34a78c6/WeaselTSF/KeyEventSink.cpp#L7-L17
如果是Echo中,超时返回0会让Client识别连接无效,也是跳过输入处理的 https://github.com/rime/weasel/blob/8246b8c511d19a788935ee0b1e295fecc34a78c6/WeaselTSF/WeaselTSF.cpp#L235-L261
可能是我少描述了什么,我这里 Windows 11 lot LTSC 和 Windows 23H2(AAtlas OS)照样能复现:
Edit:就这样吧,改天再试,或者看看其他人怎么说。
这个dmp文件可以上传上来,毕竟已经知道你是哪个版本的小狼毫了
我倒是试出一个退出服务的时候,librime里的一些对象析构时的问题,目前不稳定复现
这个是重新跑的。Windows 10 虚拟机
我不懂具体实现,但允许我 Off-topic 一下,Weasel 可能在处理 lua 时和其他前端有些不一样。这个 librime-lua 的 bug,其他所有前端都会报错,rime_api_console 也会报错,但唯独 Weasel 不报错,按理说应当是无法同步,用户词典锁定的。
https://github.com/hchunhui/librime-lua/issues/335
Update:
我用实机跑了下(非雾凇配置,但用了雾凇的词库,以及其中的两个 unicode 和 number 两个lua),报了这个错误,实机用的是自己构建的 librime,所以不放 dmp 了
自行构建rime.dll 应该会有rime.pdb, 将这个和weaselserver.pdb 都放exe同目录,在那个分析软件加上那个路径,分析下就有东西出来了至于 c0000005参考 https://learn.microsoft.com/zh-cn/shows/inside/c0000005
不懂,没看到过 rime.pdb,和用 clang 编译的有关系吗?
那个软件也没搞明白,移动 pdb 到程序目录,并添加 symbol 路径后,点分析,提示什么无法生成 xxx,返回了 31 之类。
等你发新版后,其他人有没有复现好了。🤣
哦,clang 编译是没有的,msvc 的产物
复现了问题,但是这个未有思路
不在算法服务里面部署,只能用WeaselDeployer.exe来部署更新
更新,我推自用分支了,目前试了似乎还行
昨天搞懂那个 pdb 分析软件的用法(虚拟机无支持的浏览器,无法打开报告才报错)
里面提示是什么内存访问出错,跟这个一模一样
https://github.com/rime/weasel/issues/1269#issuecomment-2135402753
大概他说的现象,也是这个原因:https://github.com/rime/weasel/issues/1259#issuecomment-2139686462
我原先努力复现,是以为能找到了一些人说的什么 lua 导致崩溃、和开机不能自启的稳定复现方法,看起来不太像。🤣
试了一下,现在好多了。用了一天多下来,没有出现假死的情况了
复现步骤:
2024年06月01日16时22分.webm
(视频中截了一段,是因为第一次实验,整个系统卡死了,我乱点后,直接被强退了,上面的 error log 显示未编译完成)
Originally posted by @mirtlebot in https://github.com/rime/weasel/issues/1269#issuecomment-2143359433
猜想:
若此 bug 证实,我猜想之前一些用户未能正常开机自启动的原因是,
之所以会进入部署状态,我猜想可能是有一些人喜欢用第三方软件往词库里面加词(lua 也可以做到),这些东西都需要重新部署
个人猜测和 lua 写的好不好关联不大,毕竟上述实验,一个字都没打上,如果真的是分析和 lua 相关,那只能说在乱打的时候, lua 做了什么事情,或者在卡死后,lua 没做什么事情