The Nodesource Blog

#shoptalk Subscribe

Node.js v5.4.1 Release Brief

This week’s release is 👏Myles Borins’s (TheAlphaNerd) 👏 first Node release as part of the Node.js release team!

As with all releases within major version lines, minor and patch upgrades should be drop-in replacements for previous versions.

Overview

Of a total of 26 commits:

  • 12 were documentation-only commits.
  • 4 only modify tests.
  • One V8 commit was backported from V8 upstream: 066747e as 00148b3

The remaining significant commits are as follows:

  • [ff539c5bb5] - cluster: ignore queryServer msgs on disconnection (Santiago Gimeno) #4465
  • [787c5d96bd] - http: remove variable redeclaration (Rich Trott) #4612
  • [145b66820f] - module: move unnecessary work for early return (Andres Suarez) #3579
  • [ffb7deb443] - net: remove hot path comment from connect (Evan Lucas) #4648
  • [799aa74d90] - net: fix dns lookup for android (Josh Dague) #4580
  • [9accebe087] - net, doc: fix line wrapping lint in net.js (James M Snell) #4588
  • [37a546b490] - src: remove redeclarations of variables (Rich Trott) #4605
  • [b515ccc2a1] - stream: remove useless if test in transform (zoubin) #4617
  • [b70eec8f7b] - tls_legacy: do not read on OpenSSL's stack (Fedor Indutny) #4624

Notable Changes

This release is very light, with only one minorly notable performance fix in addition to the doc updates and bug fixes.

  • module: return early to avoid unnecessary work (Andres Suarez) #3579.

Git Diffstats

(Showing the delta between v5.4.0 and v5.4.1, ignoring deps/npm.)

Without deps, docs, benchmarks, or tests:

 lib/_http_client.js      |  8 +++-----
 lib/_stream_transform.js |  3 +--
 lib/_tls_legacy.js       | 14 ++++++++------
 lib/cluster.js           |  3 +++
 lib/module.js            |  7 +++----
 lib/net.js               |  9 ++++-----
 src/node.js              | 10 +++-------
 src/node_version.h       |  2 +-
 8 files changed, 26 insertions(+), 30 deletions(-)

Deps only:

 deps/v8/src/elements.cc | 17 +++++++++++------
 deps/v8/src/objects.cc  |  2 ++
 2 files changed, 13 insertions(+), 6 deletions(-)

Docs only:

 CHANGELOG.md                   |   46 ++
 README.md                      |    8 +-
 doc/api/assert.markdown        |    9 +-
 doc/api/child_process.markdown |   17 +-
 doc/api/crypto.markdown        | 1240 ++++++++++++++++++++++++++------------
 doc/api/dns.markdown           |    9 +-
 doc/api/errors.markdown        |    3 +-
 doc/api/fs.markdown            |    5 +-
 doc/api/http.markdown          |    6 +-
 doc/api/modules.markdown       |    6 +-
 doc/api/path.markdown          |    4 +-
 doc/api/process.markdown       |    4 +-
 doc/api/readline.markdown      |   18 +-
 doc/api/repl.markdown          |    2 +-
 doc/api/stream.markdown        |   40 +-
 doc/api/util.markdown          |    5 +-
 doc/api/zlib.markdown          |    2 +-
 doc/api_assets/style.css       |   68 ++-
 doc/releases.md                |  166 +++--
 doc/template.html              |    3 -
 20 files changed, 1117 insertions(+), 544 deletions(-)

Tests & Benchmarks only:

 test/gc/test-http-client-connaborted.js           |  1 -
 test/gc/test-http-client-onerror.js               |  1 -
 test/gc/test-http-client-timeout.js               |  1 -
 test/gc/test-http-client.js                       |  1 -
 test/parallel/test-child-process-fork-close.js    |  1 -
 .../test-timers-unrefd-interval-still-fires.js    |  4 +-
 test/parallel/test-tls-0-dns-altname.js           |  2 -
 test/parallel/test-tls-max-send-fragment.js       |  2 -
 test/sequential/test-cluster-disconnect-leak.js   | 47 +++++++++++++++++++++
 9 files changed, 49 insertions(+), 11 deletions(-)

Most active commit

Of the 26 commits, ff539c5 was the most active (not counting npm or doc updates):

commit ff539c5bb55c828c538665f07ed6d31d34c4ed22
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Date:   Tue Dec 29 10:21:55 2015 +0100

    cluster: ignore queryServer msgs on disconnection

    It avoids the creation of unnecessary handles. This issue is causing
    intermitent failures in `test-cluster-disconnect-race` on `FreeBSD`
    and `OS X`.

    The problem is that the `worker2.disconnect` is being called on the
    master before the `queryServer` is handled, causing the worker to
    be deleted, then the Server handle is created afterwards. Later on,
    when `removeWorker` is called from the `exit` handler, there are no
    workers left, but one handle, thus the `AssertionError`.

    Add a new `test/sequential/test-cluster-disconnect-leak` based on
    `test-cluster-disconnect-race` that creates lots of workers and fails
    consistently without this patch.

    PR-URL: https://github.com/nodejs/node/pull/4465
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
    Reviewed-By: Rich Trott <rtrott@gmail.com>

 lib/cluster.js                                  |  3 ++
 test/sequential/test-cluster-disconnect-leak.js | 47 +++++++++++++++++++++++
 2 files changed, 50 insertions(+)

This is a regular and routine release for a Node.js stable release line. We will be sure to let you know when a release contains a critical update and a recommendation to upgrade. Of course, we'd love you to upgrade, but this release is not critical unless you are experiencing one of the issues identified and fixed above.