When a server hit EMFILE it would continue to try to accept new connections from the queue. This patch introduces a timeout of one second where it will stop trying to accept new files. After the second is over it tries again. This is a rather serious bug that has been effecting many highly concurrent programs. It was introduced in 4593c0, version v0.2.0. TODO: A test for this situation. Currently I test it like this termA% cd projects/node termA% ulimit -n 256 termA% ./node benchmark/idle_server.js termB% cd projects/node termB% ./node benchmark/idle_clients.js And watch how the server process behaves.
Add SIGTERM and SIGINT signal handlers so that we run the exit handlers before exiting when getting these signals. Fixes an issue where we couldn't run vi after CTRL+C'ing node because the stdin fd was left non-blocking. Also the test from ceb5331a64e813f3a982c702fea5dcd2db2e7a290
If process name contains a space, this parsing fails for no good reason.
v8 doesn't expose a command-line flag to set the stack size, so this adds a new flag that node understands how to handle and uses v8's ResourceConstraints API.
Mostly just upgraded tools/test.py to the latest one that's in V8. But also fixing the before and after hooks to preserve the test/tmp directory so that running tests manually usually works.
Reported by Kadir Pekel <email@example.com>
Thanks to Tim Becker for pointing this out.
Reported here: http://groups.google.com/group/nodejs-dev/browse_thread/thread/9e063d0938f99879 Would be good to test this somehow...
… first read of a range read.
Made this test in response to this thread: http://groups.google.com/group/nodejs/browse_thread/thread/f82835007a277de2/ But Node appears to be working correctly.