【问题标题】:Turbolinks on Rails 4.2.0 causing NodeJS SegfaultRails 4.2.0 上的 Turbolinks 导致 NodeJS Segfault
【发布时间】:2015-09-21 03:39:06
【问题描述】:

我最近在我的 Rails 应用程序中更新了我的一个咖啡文件(使用 NodeJS 作为我的运行时),保存它后,我重新加载了页面并得到了 ExecJS::RuntimeError 页面。

所以我恢复到以前的状态,我仍然得到ExecJS::RuntimeError

然后我运行rake assets:cleanbundle exec rake tmp:clear 认为它只是被缓存的东西,如果我清除它一切都会好的。仍然得到 ExecJS::RuntimeError 页面。重新启动 Apache,然后重新启动服务器,仍然不行。

接下来我查看了日志,发现每次加载页面时都会收到此信息(运行abrt-cli list --since 1442790134):

   reason:         node killed by SIGSEGV
   time:           Sun 20 Sep 2015 08:05:56 PM EDT
   cmdline:        node /tmp/execjs20150920-17817-q0hw4js
   package:        nodejs-0.10.36-3.el7

为了确保是 Turbolinks 造成的,我从应用程序布局模板的顶部取出了 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>,应用程序中的所有页面都加载得很好,只是没有 javascript。

我正在运行 CentOS 7、Ruby 2.0.0p598、Rails 4.2.0 和 NodeJS v0.10.36。

什么可能导致这种情况,我可以做些什么来阻止这种情况发生?

编辑:这似乎解决了问题。通过将 SELinux 设置为关闭一点 (setenforce 0),它能够写入所需的任何位置,当我重新打开 SELinux 时,一切都恢复正常。我仍然对这一切是如何开始的感到困惑......

【问题讨论】:

    标签: javascript ruby-on-rails node.js turbolinks


    【解决方案1】:

    临时 js 文件的问题 - 它在 SIGSEGV 中停止
    所以要找到问题手动运行它:

    node /tmp/execjs20150920-17817-q0hw4js  
    

    你会知道它停止的原因

    【讨论】:

    • 我运行 node /tmp/execjs20150920-17817-q0hw4js 并得到以下信息:module.js:340 throw err; ^ 错误:在 Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Function.Module 找不到模块'/tmp/execjs20150920-17817-q0hw4js' .runMain (module.js:497:10) 在启动时 (node.js:119:16) 在 node.js:929:3
    • 表示/tmp/execjs20150920-17817-q0hw4js不存在(:
    • 嗯,是的,我明白了,但是我如何告诉 Rails 重新创建它?
    • Bundler 必须自动创建,可能是权限问题?
    • tmp 文件夹有以下权限:drwxrwxrwt。 root root system_u:object_r:tmp_t:s0 tmp 所以我觉得还可以
    【解决方案2】:

    问题是我不应该将我的 Rails 应用程序放在 /var/www/ 文件夹中,因为 CentOS 将 /var/www/ 中的所有文件都视为对公众开放,非常危险。 Link to answer.

    【讨论】:

      猜你喜欢
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2010-12-25
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多