2015-02-04 3 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, 데비안

답변

0

정확하게 답변을 모르지만 이것이 도움이된다고 생각하십시오.

phantomJs을 사용했을 때 나는 가끔 (신호에 대한 작업자 변경) 오류가 발생했습니다. 상황 : phantomJs를 사용하여 페이지를 여는 중이었습니다. 시체가 준비되었을 때 콜백이 호출되기를 바란다. 그런 다음 나는 팬텀을 닫고있다. 그로소 내 코드이었다 MODO : 이렇게

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

, 예외가 있었다 :

signal killed phantomjs: SIGSEGV 

이 시점에서 나는 그것이 무거운 콜백 작업을 위해 단지을 깨는 것을 깨달았다. 순서대로, exit() 전에 콜백 함수가 가벼운 경우 : 모든 것이 좋았습니다. 그러나 다른 조건에서는 충돌합니다.

용액 : 콜백 전에 개체습니다 :

ph.exit(); 
    callbackDone(result);