Does anyone have any thoughts on the below?

Or is there a better zero-downtime deployment module I should use instead of 
naught that has already solved this problem of how to pass along a socket on a 
file descriptor?


On Nov 2, 2014, at 6:32 PM, Ryan Schmidt wrote:

> My server is started by another process that hands it a socket on file 
> descriptor 11. I start my server this way:
> 
> http.createServer(app).listen({fd: 11});
> 
> Now I want to modify this to enable zero-downtime deployments, so I would 
> like to have naught start my server. The question is: how can I get naught to 
> pass fd 11 to my script so that I can listen on it? Or, how do I "connect" 
> naught's fd 11 with my script's fd 11?
> 
> I have tried modifying naught's spawn invocation so that it reads:
> 
>    var stdio = [process.stdin, stdoutValue, stderrValue, 'ipc'];
>    stdio[11] = 11;
>    master = spawn(process.execPath, nodeArgs.concat([path.join(__dirname, 
> "master.js"), workerCount, script]).concat(argv), {
>      env: process.env,
>      stdio: stdio,
>      cwd: process.cwd(),
>    });
> 
> Basically I have added "stdio[11] = 11;" However this doesn't seem to be 
> working. My server is failing to listen, getting the error "Error: listen 
> ENOTSOCK". The node documentation says a positive integer in the stdio array 
> "is interpreted as a file descriptor that is is currently open in the parent 
> process. It is shared with the child process". I'm wondering if the problem 
> is that the file descriptor, though available to my parent process, is not 
> open yet. If so, how should I open it? Just fs.open?
> 
> Is there some way for naught (or any process) to know which fds are being 
> made available to it, and pass them on to the child without needing to be 
> told what they are? Is it possible for a process to automatically pass all 
> fds to a child without having to enumerate them?
> 
> 
> I have also filed this issue as a naught ticket but haven't heard back yet:
> 
> https://github.com/andrewrk/naught/issues/65



-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/1ABA4CB3-BD6B-4B05-8C1C-D22CFA66CBCF%40ryandesign.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to