新增组件后,将组件到环境上升级,会触发回滚,使用busctl --user tree 命令查询资源树发现未有新增资源树,组件进程是在的,加日志打印后发现,service目录下的main.lua调用新增组件lualib下的app.lua时,未进入到其init函数中,请问这种情况需要检查哪里呢?感谢
- 触发回滚大概率是因为maca检查组件启动状态失败了
- 这种情况可以在组件的main.lua给app.new加上pcall看下是否有详细报错
ctor函数干了啥,看上去像是ctor就挂了
我在start中添加打印,发现 skynet.uniqueservice(‘sd_bus’)
skynet.register(‘app’)之后没有打印了
我ctor中什么都没有做
目前看是卡在了app.new之前
还有就是请问一下,如何能阻止回滚呢?感谢
- app.new失败的话就用pcall来执行然后捕获打印错误
- 如果只是单一组件异常导致的回滚可以修改/opt/bmc/conf/mc_control.json文件中的三个true为false,然后killall skynet就不会因为组件异常而回滚了