Javascript node.js socket.io脚本在1-2天后被SIGSEGV杀死

Javascript node.js socket.io脚本在1-2天后被SIGSEGV杀死,javascript,node.js,sockets,segmentation-fault,Javascript,Node.js,Sockets,Segmentation Fault,我将永远运行我的node.js服务器,我的脚本在1-2天内被终止,我在日志文件中得到以下错误: error: Forever detected script was killed by signal: SIGSEGV 现在我的node.js脚本中有很多函数。在每个函数开始时编写console.log时,我最终在日志中得到了以下内容: info: transport end (undefined) debug: set close timeout for client CbU1mvlYaIvDW

我将永远运行我的node.js服务器,我的脚本在1-2天内被终止,我在日志文件中得到以下错误:

error: Forever detected script was killed by signal: SIGSEGV
现在我的node.js脚本中有很多函数。在每个函数开始时编写console.log时,我最终在日志中得到了以下内容:

info: transport end (undefined)
debug: set close timeout for client CbU1mvlYaIvDWHB4ChQa
debug: cleared close timeout for client CbU1mvlYaIvDWHB4ChQa
disconnection function
debug: discarding transport
debug: clearing poll timeout
debug: client authorized
info: handshake authorized 2O3m1B3dGWFOJ4W9ChQc
error: Forever detected script was killed by signal: SIGSEGV
日志显示连接或断开连接功能似乎有问题,但由于脚本seg在运行2天后出现故障,并且连接/断开超过10000次,我认为这可能不是真正的问题

以下是我的连接和断开功能。我还通过节点dbi连接到我的pgsql数据库:

var DBWrapper = require('node-dbi').DBWrapper; 
var DBExpr = require('node-dbi').DBExpr; 
var dbConnectionConfig = { host: 'localhost', user: 'user', password:   'pass', database: 'dbname' };
dbWrapper = new DBWrapper( "pg", dbConnectionConfig );
dbWrapper.connect();

io.sockets.on('connection', function(socket) {


  console.log("socket connection");

socket.on('set username', function(userName) {
var milliseconds = (new Date).getTime();
var data = { socketid: socket.id, time: milliseconds };
dbWrapper.insert('all_sockets', data , function(err) {
});

});

socket.on('disconnect', function() {

  console.log("disconnection function");
  dbWrapper.remove('all_sockets', [['socketid=?', socket.id]] , function(err) {} );
 });

});

段故障来自何处?

我建议使用segfault处理程序来确定STDERR。这样,您将获得一些更有用的调试信息


您是否正在使用任何已编译的加载项<代码>查找节点\模块/-name\*。如果需要,节点应显示结果。您是否获得coredump(例如node.core)在主条目脚本的目录中,find命令给出以下命令:node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build/Release/obj.target/bufferutil.node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build/Release/obj.target/validation.nodenode_modules/socket.io/node_modules/socket.io/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/build/Release/validation.node_modules/pg/build/Release/obj.target/binding.node_modules/pg/build/Release/binding.node在有什么帮助吗?今天在2天后我又遇到了一个错误。我能在远程服务器上得到这个吗?你可以用npm安装软件包。尝试:npm install segfault Handler无法安装它。得到错误gyp ERR!配置错误gyp ERR!堆栈错误:无法安装节点的“pre”版本,请使用--nodedir标志代替gyp ERR!安装时堆栈(/usr/local/lib/node_modules/npm/node_modules/node gyp/lib/install.js:66:16)使用稳定的节点版本(目前为v0.10.28)