关闭 SebKuzminsky 打开了这个问题 2016 年 4 月 13 日 · 0 条评论 注释 合作者 塞布·库兹明斯基 评论了 2016 年 4 月 13 日 目前(从 2.7.4 和 master commit 69e87f9 开始)解释器以不安全的方式保存参数文件: 使用备份扩展名重命名当前文件 通过打开它进行写入来创建一个新的替换参数文件 写出参数 关闭文件以保存它 这是在 src/emc/rs274ngc/rs274ngc_pre.cc 的 Interp::save_parameters() 中完成的。 这有在 1 之后但在 4 之前出现问题的危险(例如操作员切断机器的电源),从而导致损坏。 更安全的替代方法是将现有参数文件复制到备份,将新参数文件写入临时文件,然后自动将临时文件重命名为实际参数文件,替换它。 另一种选择是研究轻量级键/值存储,也许在一个单独的进程中。如果磁盘访问速度慢,这将有不阻塞任务的好处,这是目前 linuxcnc 中用户空间/非实时延迟的主要来源。 这个修复应该在 master 中进行,而不是在稳定/发布分支中。 jepler 添加 增强 任务 标签 2016 年 6 月 15 日 cradek 关闭此 作为 完成 d8ef5f7 2016 年 8 月 8 日 免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论 受让人 无人分配 标签 增强任务 项目 还没有 里程碑 没有里程碑 发展 没有分支机构或拉取请求 2名参加者 喜欢 (0)
目前(从 2.7.4 和 master commit 69e87f9 开始)解释器以不安全的方式保存参数文件:
这是在 src/emc/rs274ngc/rs274ngc_pre.cc 的 Interp::save_parameters() 中完成的。
这有在 1 之后但在 4 之前出现问题的危险(例如操作员切断机器的电源),从而导致损坏。
更安全的替代方法是将现有参数文件复制到备份,将新参数文件写入临时文件,然后自动将临时文件重命名为实际参数文件,替换它。
另一种选择是研究轻量级键/值存储,也许在一个单独的进程中。如果磁盘访问速度慢,这将有不阻塞任务的好处,这是目前 linuxcnc 中用户空间/非实时延迟的主要来源。
这个修复应该在 master 中进行,而不是在稳定/发布分支中。