Wednesday, 15 February 2012

node.js - Real forking UDP server asserts and core dumps -



node.js - Real forking UDP server asserts and core dumps -

this worked flawlessly in node 0.6.19 fails.

i wrote forking udp server in node. however, node doesn't have real fork , cluster doesn't udp, wrote module in c++ calls fork (the module contains function called "hasher")

static handle<value> spoon(const arguments& args) // node sees function "fork" { handlescope scope; pid_t rval = fork(); if (rval < 0) { homecoming throwexception(exception::error(string::new("unable fork daemon, pid < 0."))); } handle<value> n = v8::number::new(rval); homecoming n; }

i bind udp port, , fork children.

udp_server.bind(argv.udp_listen_port, '0.0.0.0'); // create multiple children (loop starting 1 on purpose) (var = 1; < argv.multiple; i++) { var pid = hasher.fork(); if (pid == 0) break; }

theoretically, kid processes should not know else sharing port , should behave normally. however, (1 or 2 incoming udp packets) trigger assert message:

node-0.10.29: ../deps/uv/src/unix/stream.c:499: uv__server_io: assertion `events == 1' failed. aborted (core dumped)

anyone have clue going on?

node.js udp fork assert

No comments:

Post a Comment