Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

net::Server.unref() failed on cluster mode #25782

Closed
kyriosli opened this issue Jul 30, 2015 · 2 comments
Closed

net::Server.unref() failed on cluster mode #25782

kyriosli opened this issue Jul 30, 2015 · 2 comments

Comments

@kyriosli
Copy link

I opened an issue in the project nodejs/node and thought maybe I should have posted it here:

This can be easily reproduced by the following code:

var cluster = require('cluster');
if (cluster.isMaster) {
    cluster.fork();
}
else {
    require('net').createServer().listen(8081, function () {
        this.unref();
    })
}

In node v0.12.7 it says:

net.js:1440
    this._handle.unref();
                 ^
TypeError: undefined is not a function
    at Server.unref (net.js:1440:18)
    at Server.<anonymous> (/home/kyrios.li/test.js:7:8)
    at Server.g (events.js:199:16)
    at Server.emit (events.js:129:20)
    at net.js:1171:12
    at process._tickCallback (node.js:355:11)

and the same code is ok when NODE_CLUSTER_SCHED_POLICY is set to none. So I thought maybe it is a problem with RoundRobin?


I simplified the code to to the following:

var cluster = require('cluster');
if (cluster.isMaster) {
    cluster.fork();
}

but the child process is not exiting because there is internal message listeners. So Making unref work well will not make a change.

But I think we should at least avoid the error to be thrown, maybe a patch to the net module that ignores the unref call when cluster.isSlave is true will do?

@evanlucas
Copy link

This was fixed in iojs by nodejs/node#2274. Perhaps this should be ported over?

@cjihrig
Copy link

cjihrig commented Mar 4, 2016

@jasnell are you cool with me closing the iojs-backport labeled issues over here?

@Trott Trott closed this as completed Apr 22, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants