【问题标题】:NodeJS Cluster Error : SIGSEGVNodeJS 集群错误:SIGSEGV
【发布时间】:2015-04-03 18:00:30
【问题描述】:

我使用 nodejs 集群

var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
   for (var i = 0; i < numCPUs; i++){
      var worker = cluster.fork();
      worker.on('exit', function(code, signal) {
        console.log("worker was killed by signal: " + signal);
      });
   }
}

有时在不同的时间间隔我有一个错误

worker was killed by signal: SIGSEGV

这个错误是什么意思,她为什么打电话? 节点版本 v0.11.14-pre, Debian

【问题讨论】:

标签: node.js


【解决方案1】:

不知道确切的答案,但认为这可能会有所帮助。

使用phantomJs 我得到有时同样的错误(改变工人的信号)。情况:我正在使用 phantomJs 打开一个页面;当身体准备好时,我想调用一个回调,然后我正在关闭幻象。 Grosso modo 我的代码是:

phantom.create(function (ph) {
  ...
  callbackDone(result);
  ph.exit();
});

这样做,例外是:

 signal killed phantomjs: SIGSEGV

此时我意识到它正在打破只是繁重的回调任务。换句话说,如果exit() 之前的回调函数是一个轻量级的函数:一切都很好;但在不同的条件下它会崩溃。

解决方法:在回调前关闭对象:

  ph.exit();
  callbackDone(result);

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 2017-10-25
    • 2014-06-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    相关资源
    最近更新 更多