-
Notifications
You must be signed in to change notification settings - Fork 581
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
算法服务崩溃,如果 lua_filter 脚本中没有 return #1502
Comments
这个可以用rime_api_console再确认一下,或者如果不想自编译librime的和,就用我做的那个rimeac.lua试试 |
不清楚测什么、怎么用。 |
看看script.lua,里面是一个基本前端的流程,这个是将rime_api_console的流程bind到lua里,在里面设置好用户目录,共享目录之类的就可以的,用户目录一样和常规的前端一样放置就行 |
好像是 另外,rimeac.setup_rime的参数: |
是吗?我试过 |
不确定具体情况,用它加载时好时坏总有点毛病,不确定是否弄对了。 |
那可能要给librime-lua提bug了 |
最新nightly依旧崩。
|
看了下 lua 插件的源码,确实没有检查脚本是不是有 return,无脑按有 return 来处理,于是就内存越界读写了。 |
好的,谢谢您的检查。 |
Only lua_processor func (key, env) should return 0, 1, 2 (reject , accept, noop) |
你看错了,不是处理函数的返回值,是整个脚本文件的返回值。 |
lua_filter@module[@namespace] --手動載入 在 rime.lua 中載入 module = require 'xxxx.lua' , env.name_space = module -- module.lua for filter
local F = {}
return F lua_filter@modulesubmodule[@namespace] -- 自動載入 module.lua submodule -- module.lua
local F = {} -- lua_filter
function F.init(env) end
function F.fini(env) end
function F.func(tran, env) end
local T = {} -- lua_translator
return { tran=T, submodule=F} 請查看 wiki |
上报前请检查
操作系统信息
描述遇到的问题
调试Lua时遇到算法服务始终崩溃,按什么按键都崩溃,输入法不可用。如果这是一个代码bug,建议做修复。
复现步骤
lua\test_filter.lua 文件只需如
有或无其他内容不重要,只要没有例如
return { filter = filter }
部署。尝试输入文字。系统卡顿几秒,Temp\rime.weasel中生成dmp,无ERROR日志文件。
预期行为
跳过异常脚本,记录错误日志。test_filter.lua 文件不存在时是正常记录错误日志。
用户文件
N/A
截图
N/A
其他补充说明
错误堆栈与Lua脚本因多线程冲突导致的崩溃相似。
rime!rime::UserDictManager::UpgradeUserDict+0x86dbd:
不清楚问题是否归Lua组件。
The text was updated successfully, but these errors were encountered: