Commit Graph

2376 Commits (aeb9bed63e3521088aef3b919ac5129a9822e83c)

Author SHA1 Message Date
Ryan Dahl aeb9bed63e Improve idle benchmarks 2010-10-27 02:52:49 -07:00
Ryan Dahl ac54272218 Gracefully handle EMFILE
Implementing a tip from Marc Lehmann:
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#The_special_problem_of_accept_ing_wh

Keep an extra FD around for every server. When you hit EMFILE, destroy that
FD, accept a connection, close it; in this way you can clear the connection
queue and let people know that you're overload.

No more timeout needed.
2010-10-27 02:12:25 -07:00
Tim-Smart 79ecc8e9b7 Style changes. 2010-10-26 18:47:46 -07:00
Ryan Dahl bc47353bbe Use the timer list for setTimeout 2010-10-26 14:53:18 -07:00
Ryan Dahl 79944006e2 Move setTimeout and friends into timers module 2010-10-26 14:53:17 -07:00
Ryan Dahl 5cc29b80f2 Move idle timers into its own module 2010-10-26 14:53:17 -07:00
Ryan Dahl dcc4fffe4d Add C++ API for constructing fast buffer from string 2010-10-26 13:43:58 -07:00
Ryan Dahl d1e5fbdde4 Remove old TODOs 2010-10-26 11:33:18 -07:00
Ryan Dahl 72aee8216c Fix permissions on http.js 2010-10-26 11:31:01 -07:00
Ryan Dahl 9bbc7e0bc7 Remove old todo 2010-10-26 01:10:32 -07:00
Ryan Dahl 2470d2ee92 allowHalfOpen disabled by default
Users too often would forget to add

  socket.on('end', function () {
    socket.end();
  });

Which is a mistake. Therefore we default to this behavior and
only optionally let people handle the 'end' case themselves.
2010-10-26 01:10:18 -07:00
Ryan Dahl a7b4af0ae5 create directories during configure 2010-10-25 19:52:58 -07:00
Ryan Dahl 5175864c0e exec instead of sh a the configure.real script 2010-10-25 19:52:35 -07:00
Ryan Dahl 43022eabf7 more configure hackery 2010-10-25 18:33:15 -07:00
Ryan Dahl eaba4fc2bf Ignore configure.real 2010-10-25 18:24:48 -07:00
Ryan Dahl 5cf4ceff59 add configure 2010-10-25 18:21:45 -07:00
Ryan Dahl 583c07bf8b fix style 2010-10-25 17:30:08 -07:00
Paul Querna 97977640bd Set the readable variables on the read/write streams
and add more debug() calls to make it easier to see the flow
2010-10-25 17:28:21 -07:00
Paul Querna 1128c0bf67 Add SecurePair for handling of a ssl/tls stream. 2010-10-25 17:26:58 -07:00
Paul Querna 6ea61acf29 remove old todo. 2010-10-25 17:26:44 -07:00
Paul Querna 1ce4684a27 Centralize error handling in SecureStream
and add a start method, to kick off SSL handshaking, without writing a zero
byte buffer
2010-10-25 17:26:03 -07:00
isaacs 446d2ec19c Add make install 2010-10-25 13:43:09 -07:00
Micheil Smith 8da020d39e Update node_net.cc to make us of node_constants.cc
also affects dgram which uses a constant from node_net.cc
2010-10-25 12:14:47 -07:00
Paul Querna 9977831078 Add HAVE_OPENSSL flag to makefile 2010-10-25 10:28:14 -07:00
Ryan Dahl 7eed71f8bb add todo about half-open connections 2010-10-24 20:11:47 -07:00
Ryan Dahl fcd0c3ebc0 Remove test-base64-bigfile
Already tested in test/simple/test-buffer.js. Takes too long, uses too much
memory.
2010-10-24 19:21:12 -07:00
Ryan Dahl 15594eaf87 Replace WAF with make/autoconf 2010-10-24 18:39:36 -07:00
Ryan Dahl bb85e7751f Now working on v0.3.1 2010-10-23 16:01:37 -07:00
Ryan Dahl 1582cfebd6 bump version to 0.3.0 2010-10-23 16:00:15 -07:00
Ryan Dahl 477df1aaec Revert "Add some failing tests for path.join"
This reverts commit 8c0e87f9c3.

(Revert until fix comes)
2010-10-23 15:35:58 -07:00
Ryan Dahl 38f117cb6d one more 'listening' race condition 2010-10-23 14:26:31 -07:00
Ryan Dahl 44234e9cc7 Fix a few 'listening' race conditions
in
test-net-timeout
test-http-client-parse-error
2010-10-23 14:13:04 -07:00
Ryan Dahl 0ac2ef924f Do not spin on aceept() with EMFILE
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.
2010-10-23 12:28:20 -07:00
Ryan Dahl 9bf2975f78 Make sure Error object on exec() gets killed member
Also default to SIGTERM for destruction when exceeding timeout or buffer on
exec()
2010-10-23 11:37:40 -07:00
Ryan Dahl d9a5edb2b0 Fix test-net-eaddrinuse 2010-10-23 11:22:24 -07:00
Stéphan Kochen dd52737476 Provide a C++ Buffer constructor for external storage.
In order to do this, buffer data management was moved out of the
JS entry-point New, and into Replace.

Secondly, the constructor makes an immediate call to Replace, and
in order for ArrayData calls to work, wrapping must already be set
up. Now, the constructor takes the wrappee as a parameter.
2010-10-22 16:52:14 -07:00
Stéphan Kochen b3e60c7b25 Generalize Buffer::Copy to work with all unsigned byte external data. 2010-10-22 13:47:10 -07:00
Stéphan Kochen d5e966154c Simplify things by using `*ArrayData` everywhere. 2010-10-22 13:32:48 -07:00
Stéphan Kochen d9b08d66d6 Remove old interface remains from Buffer.
These were all lacking implementation, so deprecating wouldn't help.
2010-10-22 13:32:31 -07:00
Ryan Dahl b2969a9155 Don't call AtExit twice 2010-10-22 10:17:38 -07:00
Vitali Lovich fb8830a64f Fix parsing of linux memory
If process name contains a space, this parsing fails for no good reason.
2010-10-22 10:14:19 -07:00
Ryan Dahl 604f4fdf8c Write write.txt into the tmpdir 2010-10-22 10:02:30 -07:00
Ryan Dahl 92c5634cbd Remove a confusing sentence in the docs 2010-10-21 17:32:13 -07:00
Jorge Chamorro Bieling 99e19aa398 Remove unneeded function wrappers 2010-10-21 17:11:59 -07:00
Ryan Dahl 174a3a9a08 Upgrade libev to 4.00 2010-10-21 15:38:32 -07:00
Ryan Dahl 3b861db31d Upgrade V8 to 2.5.1 2010-10-21 15:22:38 -07:00
Ryan Dahl 2629296c25 Add isatty for isaacs 2010-10-21 12:34:37 -07:00
Ryan Dahl ceb5331a64 Force exit on SIGINT but still reset flags on stdio fds
Add test that one can ctrl+c out of a script spinning infinitely.
2010-10-21 12:28:04 -07:00
Ryan Dahl 33e45bbe46 Add incomplete R plot file 2010-10-20 21:28:49 -07:00
Ryan Dahl 6570cd99e5 Fix execFile timeouts, improve tests
It seems that a parent will not get a SIGCHLD if the child is killed by the
parent? It's unclear, so make 'exit' callback manually.
2010-10-20 19:20:52 -07:00