Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tag: v0.8.21
Commits on Feb 25, 2013
  1. @isaacs

    2013.02.25, Version 0.8.21 (Stable)

    isaacs authored
    * 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. @isaacs

    uv: Upgrade to 86ae8b3c

    isaacs authored
  3. @isaacs

    http: Do not free the wrong parser on socket close

    isaacs authored
    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
  1. @isaacs
  2. @bnoordhuis
Commits on Feb 21, 2013
  1. @bnoordhuis

    zlib: fix assert on bad input

    bnoordhuis authored
    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/, 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. @tjfontaine @bnoordhuis

    test: add TAP output to the test runner

    tjfontaine authored bnoordhuis committed
    This is a back-port of commit 14ed173 from the master branch.
Commits on Feb 19, 2013
  1. @isaacs

    blog: v0.9.10

    isaacs authored
Commits on Feb 15, 2013
  1. @isaacs

    blog: Release v0.8.20

    isaacs authored
  2. @isaacs

    Now working on v0.8.21

    isaacs authored
  3. @isaacs
  4. @isaacs

    2013.02.15, Version 0.8.20 (Stable)

    isaacs authored
    * 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)
  5. @isaacs

    npm: Upgrade to v1.2.11

    isaacs authored
  6. @isaacs
  7. @isaacs

    http: Raise hangup error on destroyed socket write

    isaacs authored
    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. @bnoordhuis

    doc: clarify child_process.exec() stdio option

    bnoordhuis authored
    It only works for stdin, not stdout/stderr, for obvious reasons.
  2. @bnoordhuis
Commits on Feb 13, 2013
  1. @dankohn @bnoordhuis

    doc: add prompt to fix repl_test.js example

    dankohn authored bnoordhuis committed
    Running repl.start without the prompt set produces this error:
        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)
  2. @isaacs
Commits on Feb 12, 2013
  1. @isaacs

    blog: Peer Dependencies article

    isaacs authored
    Thanks, @domenic
Commits on Feb 8, 2013
  1. @bnoordhuis

    test: disable simple/test-dgram-send-error

    bnoordhuis authored
    It's not a good citizen, it spams random IP addresses with UDP packets.
    Fixes #4730.
Commits on Feb 7, 2013
  1. @isaacs
  2. @isaacs

    blog: v0.9.9

    isaacs authored
  3. @piscisaureus

    http: protect against response splitting attacks

    piscisaureus authored
    This patch is a back-port of 3c293ba.
    Closes #4696
Commits on Feb 6, 2013
  1. @isaacs

    blog: v0.8.19 release

    isaacs authored
  2. @isaacs

    Now working on 0.8.20

    isaacs authored
  3. @isaacs
  4. @isaacs

    2013.02.06, Version 0.8.19 (Stable)

    isaacs authored
    * 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)
  5. @isaacs

    npm: Upgrade to v1.2.10

    isaacs authored
Commits on Feb 5, 2013
  1. @bnoordhuis

    blog: remove dangling symlink

    bnoordhuis authored
    Fixes #4716.
  2. @bnoordhuis

    zlib: pass object size hint to V8

    bnoordhuis authored
    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
  3. @bnoordhuis

    zlib: reduce memory consumption, release early

    bnoordhuis authored
    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);
    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
    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. @bnoordhuis

    doc: don't suggest to reuse net.Socket objects

    bnoordhuis authored
    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
  1. @isaacs
Commits on Jan 30, 2013
  1. @piscisaureus
Something went wrong with that request. Please try again.