Skip to content

net.server.listen reusePort option being used on unsupported platforms, results in server termination #61018

Description

@ajchili

For Windows, MacOS, or any Linux distro not specified on the docs page, passing the reusePort=true option for net.server.listen results in server termination.

Is it required that a server terminates in this case, or can there be a graceful fallback for unsupported systems (e.g. default to false on systems that do not support SO_REUSEPORT)?

It appears that there is prior art for platform specific behavior. Could we use a similar pattern to gracefully handle reusePort?

node/lib/net.js

Lines 1852 to 1861 in e28656a

if (isWindows) {
const instances = NumberParseInt(process.env.NODE_PENDING_PIPE_INSTANCES);
if (!NumberIsNaN(instances)) {
handle.setPendingInstances(instances);
}
}
} else {
handle = new TCP(TCPConstants.SERVER);
isTCP = true;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions