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

我正在运行我的node.js服务器永远和我的脚本被杀死在1-2天,我得到这个错误在日志文件中:

error: Forever detected script was killed by signal: SIGSEGV 

现在我在我的node.js脚本中有很多function。 在每个函数的开始写一个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 

日志看起来好像连接或断开连接function有问题,但由于脚本seg运行2天后,连接/断开连接超过10000故障,我认为这可能不是真正的问题。

这是我的连接和断开function。 我也通过node-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) {} ); }); }); 

细分市场从哪里来?

我会build议使用segfault处理程序来确定STDERR。 这样你将有一些更有用的debugging信息。

你可以在这里find一个