The NodeSource Blog

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.

The NodeSource platform offers a high-definition view of the performance, security and behavior of Node.js applications and functions.

Start for Free