I am curious if anyone has encountered an issue I am currently dealing with 
in the Node Cluster module.  Following the guide, I have code that looks 
like this:

    *if* (cluster.isMaster) {
        console.log(require('util').inspect(process.env));
        *var* workerCount = settings.app.WORKERS || 1;
        *for* (*var* i = 0; i < workerCount; i++) {
            cluster.fork();
        }
    } *else* {
        *var* app = exports.createServer();
        app.listen(settings.app.PORT);
    }

Unfortunately, there appears to be some trouble in the child forking 
process.  Every child thinks that is master, which then creates another 
forked child.  I dug in to the source here:  
https://github.com/joyent/node/blob/v0.8.8/lib/cluster.js.  It seems that 
NODE_UNIQUE_ID is never being correctly set in the child environment, and 
thus each child thinks it is master.  Here is the relevant source: 

    var envCopy = util._extend({}, env);
    envCopy['NODE_UNIQUE_ID'] = this.id;
    if (isObject(customEnv)) {
      envCopy = util._extend(envCopy, customEnv);
    }

    // fork worker
    this.process = fork(settings.exec, settings.args, {
      'env': envCopy,
      'silent': settings.silent,
      'execArgv': settings.execArgv
    });


I verified that cluster.Worker.id is set to 1 after the fork call, but that 
the created child process.env does not have NODE_UNIQUE_ID.   Has anyone 
seen anything like this before?  Here are some details of my current 
operating env:

node 0.8.8
express 3.0.4
OSX 10.7.4


-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
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 post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to