2015-02-04 4 views
1

Я использую nodejs кластерNodeJS Ошибка кластера: SIGSEGV

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

ответ

0

Не знаю точно ответа, но думаю, что это может помочь.

Использование phantomJs Я получал иногда та же ошибка (меняющий рабочий для сигнала). Ситуация: я открывал страницу с помощью phantomJs; когда тело было готово, я хочу, чтобы вызывающий вызов вызывался, затем я закрывал фантом. гроссо Modo мой код был:

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

Это, исключение составили:

signal killed phantomjs: SIGSEGV 

В этот момент я понял, что это было нарушение просто для тяжелых задач обратного вызова. Для слов, если функция обратного вызова до exit() была легкой: все было в порядке; но в разных условиях он падает.

Решение: закрыть объект до обратного вызова:

ph.exit(); 
    callbackDone(result); 
Смежные вопросы