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

内存安全检查 #349

Open
fxliang opened this issue May 29, 2024 · 6 comments
Open

内存安全检查 #349

fxliang opened this issue May 29, 2024 · 6 comments

Comments

@fxliang
Copy link
Contributor

fxliang commented May 29, 2024

近期小狼毫加上了Windows Error Reporting,发现不少用户在rime.dll内有异常内存操作引发WeaselServer.exe崩溃,据有部分用户反馈,禁用部分lua脚本 后,或改用其他方案集(不一样的lua脚本使用)后明显减少崩溃的问题。

麻烦检查一下是否librime-lua中有部分内存操作未完整处理异常,谢谢 ~

@shewer @hchunhui

@shewer
Copy link
Contributor

shewer commented May 31, 2024

範圍太廣了 。
建議 安裝程式 包含 rime_api_console 程式,供user 測試

@fxliang
Copy link
Contributor Author

fxliang commented May 31, 2024

这个不是必现的,所以,不好排查。尤其是底层是指针操作的时候,可能会引发问题。

@fxliang
Copy link
Contributor Author

fxliang commented Jun 1, 2024

iDvel/rime-ice#876

比如这种?

现在观察,都是某种特殊时机下,发生了崩溃。换个环境,就复现不了了。

我每次提交前,都用 rime_api_console 跑一遍,从来没崩过

你不如发个新正式版,16.2,rime.im 官网也更新下,让更多人来试错,收集更多信息看看有什么复现方法 @fxliang

我早前想ci带上rime.pdb 但是vs2019构建Rime有问题。没有rime.pdb只能看到是rime.dll 内部崩了,定位不了。另外还要想办法能将librime-lua的pdb信息带上会更好

会有升一个版0.16.1,我这里还有一个之前你说的log的问题准备合上(我的自用分支master已合),应该是这几天的事

@hchunhui
Copy link
Owner

hchunhui commented Jun 1, 2024

如可能尽量缩小 lua 代码并给一些 stack trace 会有助于排查。

另外如果 lua 脚本误用了一些进阶的对象接口,也是有可能导致引擎崩溃的。这是因为它们是直接封装自 C++ 接口,而这些接口有不少对对象生存期有严格要求。之前见到的一个例子是 #280

@fxliang
Copy link
Contributor Author

fxliang commented Jun 1, 2024

上文有提到的iDvel/rime-ice#876 是一个例子,但是据说也不是百百复现

@WhiredPlanck
Copy link
Contributor

@hchunhui 类似崩溃问题在 Android 上也有显现。如果快速重复按键,有几率引发崩溃,调试时从日志可以看到由LuaTranslation析构时调用 lua_gc()引发。希望有所帮助。

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

4 participants