(same I posted in SO also couple of days back)
I have below sample code where I am forking child processes, starting a TCP server and closing the server after certain timeout. When I looked at TCP connections after timeout, I still see that one connection is in listening state.
Also there are no client connections on this server and I see that server's 'close' event is also firing for each worker.
Strangely the server accepts new connections also. How to close the TCP server completely in cluster environment?
I am using node 0.10.31 version.
var net = require('net');
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
var server = net.createServer(function(sock) {
console.log('received connection...');
});
server.on('listening', function() {
console.log('listening....');
setTimeout(function() {
server.close();
}, 5000);
});
server.on('close', function() {
console.log('server closed');
});
server.listen('2222', '101.30.33.194');
}on running lsof after timeout to check tcp connections:
#lsof -ni -P | grep 2222
node 17228 root 14u IPv4 440505953 0t0 TCP 101.30.33.194:2222 (LISTEN)
--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CACmrRmSG%3DYH3MAK04PLNsSHbgAD%3D1eLC0iFkCQd56Ko46KC5MA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.