This repository has been archived by the owner. It is now read-only.
Permalink
Switch branches/tags
Commits on Feb 25, 2013
  1. 2013.02.25, Version 0.8.21 (Stable)

    isaacs committed Feb 25, 2013
    * http: Do not free the wrong parser on socket close (isaacs)
    
    * http: Handle hangup writes more gently (isaacs)
    
    * zlib: fix assert on bad input (Ben Noordhuis)
    
    * test: add TAP output to the test runner (Timothy J Fontaine)
    
    * unix: Handle EINPROGRESS from domain sockets (Ben Noordhuis)
  2. uv: Upgrade to 86ae8b3c

    isaacs committed Feb 25, 2013
  3. http: Do not free the wrong parser on socket close

    isaacs committed Feb 25, 2013
    This appears to fix #4673.  That bug is very hard to reproduce, so it's
    hard to tell for certain, but this approach is more correct anyway.
    
    Hat-tip: @dougwilson
Commits on Feb 22, 2013
Commits on Feb 21, 2013
  1. zlib: fix assert on bad input

    bnoordhuis committed Feb 21, 2013
    The following test case occasionally triggered an assert because
    write_in_progress_ didn't get cleared on error:
    
      $ cat test.js
      require('zlib').gunzip('BAM', console.log);
      setTimeout(gc, 10);
    
      $ while true; do node --expose-gc test.js || break; done
      { [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }
      Assertion failed: (!write_in_progress_ && "write in progress"),
      function Clear, file ../src/node_zlib.cc, line 71.
      Abort trap: 6
    
    Steps to avoid that:
    
    * Initialize all primitive member fields in the constructor.
    * Clear the write_in_progress_ member field in ZCtx::Error().
    * Ref the ZCtx object as soon as write_in_progress_ is set to true.
      Before this commit, it could get GC'ed in the time between setting
      the field and the call to ctx->Ref().
    
    Fixes #4783.
Commits on Feb 20, 2013
  1. test: add TAP output to the test runner

    tjfontaine committed with bnoordhuis Dec 19, 2012
    This is a back-port of commit 14ed173 from the master branch.
Commits on Feb 19, 2013
  1. blog: v0.9.10

    isaacs committed Feb 19, 2013
Commits on Feb 15, 2013
  1. blog: Release v0.8.20

    isaacs committed Feb 15, 2013
  2. Now working on v0.8.21

    isaacs committed Feb 15, 2013
  3. 2013.02.15, Version 0.8.20 (Stable)

    isaacs committed Feb 15, 2013
    * npm: Upgrade to v1.2.11
    
    * http: Do not let Agent hand out destroyed sockets (isaacs)
    
    * http: Raise hangup error on destroyed socket write (isaacs)
    
    * http: protect against response splitting attacks (Bert Belder)
  4. npm: Upgrade to v1.2.11

    isaacs committed Feb 15, 2013
  5. http: Raise hangup error on destroyed socket write

    isaacs committed Feb 14, 2013
    Prior to v0.10, Node ignored ECONNRESET errors in many situations.
    There *are* valid cases in which ECONNRESET should be ignored as a
    normal part of the TCP dance, but in many others, it's a very relevant
    signal that must be heeded with care.
    
    Exacerbating this problem, if the OutgoingMessage does not have a
    req.connection._handle, it assumes that it is in the process of
    connecting, and thus buffers writes up in an array.
    
    The problem happens when you reuse a socket between two requests, and it
    is destroyed abruptly in between them.  The writes will be buffered,
    because the socket has no handle, but it's not ever going to GET a
    handle, because it's not connecting, it's destroyed.
    
    The proper Fix is to treat ECONNRESET correctly.  However, this is a
    behavior/semantics change, and cannot land in a stable branch.
    
    Fix #4775
Commits on Feb 14, 2013
  1. doc: clarify child_process.exec() stdio option

    bnoordhuis committed Feb 14, 2013
    It only works for stdin, not stdout/stderr, for obvious reasons.
Commits on Feb 13, 2013
  1. doc: add prompt to fix repl_test.js example

    dankohn committed with bnoordhuis Feb 12, 2013
    Running repl.start without the prompt set produces this error:
    
    repl.js:95
        throw new Error('An options Object, or a prompt String are required');
              ^
    Error: An options Object, or a prompt String are required
        at new REPLServer (repl.js:95:11)
        at Object.exports.start (repl.js:321:14)
        at Object.<anonymous> (/Users/dan/Dropbox/Documents/dev/nextgen/repl_test.js:5:6)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.runMain (module.js:492:10)
        at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Commits on Feb 12, 2013
  1. blog: Peer Dependencies article

    isaacs committed Feb 12, 2013
    Thanks, @domenic
Commits on Feb 8, 2013
  1. test: disable simple/test-dgram-send-error

    bnoordhuis committed Feb 8, 2013
    It's not a good citizen, it spams random IP addresses with UDP packets.
    
    Fixes #4730.
Commits on Feb 7, 2013
  1. blog: v0.9.9

    isaacs committed Feb 7, 2013
  2. http: protect against response splitting attacks

    piscisaureus committed Feb 7, 2013
    This patch is a back-port of 3c293ba.
    Closes #4696
Commits on Feb 6, 2013
  1. blog: v0.8.19 release

    isaacs committed Feb 6, 2013
  2. Now working on 0.8.20

    isaacs committed Feb 6, 2013
  3. 2013.02.06, Version 0.8.19 (Stable)

    isaacs committed Feb 6, 2013
    * npm: Upgrade to v1.2.10
    
    * zlib: pass object size hint to V8 (Ben Noordhuis)
    
    * zlib: reduce memory consumption, release early (Ben Noordhuis)
    
    * buffer: slow buffer copy compatibility fix (Trevor Norris)
    
    * zlib: don't assert on malformed dictionary (Ben Noordhuis)
    
    * zlib: don't assert on missing dictionary (Ben Noordhuis)
    
    * windows: better ipv6 support (Bert Belder)
    
    * windows: add error mappings related to unsupported protocols (Bert Belder)
    
    * windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
  4. npm: Upgrade to v1.2.10

    isaacs committed Feb 6, 2013
Commits on Feb 5, 2013
  1. blog: remove dangling symlink

    bnoordhuis committed Feb 5, 2013
    Fixes #4716.
  2. zlib: pass object size hint to V8

    bnoordhuis committed Oct 30, 2012
    Inform V8 that the zlib context object is tied to a large off-heap buffer.
    
    This makes the GC run more often (in theory) and improves the accuracy of
    --trace_external_memory.
  3. zlib: reduce memory consumption, release early

    bnoordhuis committed Oct 30, 2012
    In zlibBuffer(), don't wait for the garbage collector to reclaim the zlib memory
    but release it manually. Reduces memory consumption by a factor of 10 or more
    with some workloads.
    
    Test case:
    
      function f() {
        require('zlib').deflate('xxx', g);
      }
      function g() {
        setTimeout(f, 5);
      }
      f();
    
    Observe RSS memory usage with and without this commit. After 10,000 iterations,
    RSS stabilizes at ~35 MB with this commit. Without, RSS is over 300 MB and keeps
    growing.
    
    Cause: whenever the JS object heap hits the high-water mark, the V8 GC sweeps
    it clean, then tries to grow it in order to avoid more sweeps in the near
    future. Rule of thumb: the bigger the JS heap, the lazier the GC can be.
    
    A side effect of a bigger heap is that objects now live longer. This is harmless
    in general but it affects zlib context objects because those are tied to large
    buffers that live outside the JS heap, on the order of 16K per context object.
    
    Ergo, don't wait for the GC to reclaim the memory - it may take a long time.
    
    Fixes #4172.
  4. doc: don't suggest to reuse net.Socket objects

    bnoordhuis committed Feb 5, 2013
    Using Socket.prototype.connect() to reconnect an existing Socket object
    is not reliable. Users should just create a new Socket object.
    
    See #4698.
Commits on Feb 2, 2013
Commits on Jan 30, 2013