Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release proposal: v5.2.0 #4180

Closed
wants to merge 323 commits into from
Closed

Release proposal: v5.2.0 #4180

wants to merge 323 commits into from

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Dec 8, 2015

Since others seem to be busy with Node Interactive and this is long overdue, here's a proposal for release maybe as soon as tomorrow.

Commits list could do with some review, is there anything in here that shouldn't be in v5.x?


  • [08a3f29fd4] - buffer: fix range checking for slowToString (Matt Loring) #4019
  • [e3a8e8bba4] - buffer: Prevent Buffer constructor deopt (Bryce Baril) #4158
  • [0e18e68324] - buffer: fix writeInt{B,L}E for some neg values (Peter A. Bigot) #3994
  • [ab5b529dd2] - buffer: default to UTF8 in byteLength() (Tom Gallacher) #4010
  • [fcf0e8ebdf] - buffer: move checkFloat from lib into src (Matt Loring) #3763
  • [12649f4496] - build: add "--partly-static" build options (Super Zheng) #4152
  • [a76d788119] - build: update signtool description, add url (Rod Vagg) #4011
  • [ed255abdc1] - (SEMVER-MINOR) build,src: add Intel Vtune profiling support (Chunyang Dai) #3785
  • [7793c364fc] - child_process: flush consuming streams (Dave) #4071
  • [f29c5d6e70] - configure: v8_use_snapshot should be true (Fedor Indutny) #3962
  • [da5ac55c83] - (SEMVER-MINOR) crypto: simplify using pre-existing keys with ECDH (Michael Ruddy) #3511
  • [cfc97641ee] - crypto: fix native module compilation with FIPS (Stefan Budeanu) #4023
  • [b81b45dabd] - crypto: update root certificates (Ben Noordhuis) #3951
  • [def681a07e] - crypto: disable crypto.createCipher in FIPS mode (Stefan Budeanu) #3754
  • [ce423f3624] - debugger: introduce exec method for debugger (Jackson Tian)
  • [99fd1ec28d] - deps: backport 819b40a from V8 upstream (Michaël Zasso) #3937
  • [634c5f1f81] - doc: url.format - true slash postfix behaviour (fansworld-claudio) #4119
  • [6f957a70d8] - doc: s/node.js/Node.js in readme (Rod Vagg) #3998
  • [0cd4a52392] - doc: improve child_process.markdown wording (yorkie) #4138
  • [fd5ed6888d] - doc: add JungMinu to collaborators (Minwoo Jung) #4143
  • [fa0cdf75d9] - doc: add iarna to collaborators (Rebecca Turner) #4144
  • [424eb962b1] - doc: add zkat to collaborators (Kat Marchán) #4142
  • [85b601224b] - doc: add HTTP working group (James M Snell) #3919
  • [f4164bd8df] - doc: update links to use https where possible (jpersson) #4054
  • [3169eed1e3] - doc: add links and backticks around names (jpersson) #4054
  • [f3417e2574] - doc: standardize references to node.js in docs (Scott Buchanan) #4136
  • [95dd60c657] - doc: reword https.Agent example text (Jan Krems) #4075
  • [c61237d3ea] - doc: fix internal link to child.send() (Luigi Pinca) #4089
  • [aaeced915e] - doc: fix the exception description (yorkie) #3658
  • [a2b7596ac0] - doc: fix color of linked code blocks (jpersson) #4068
  • [f3c50f5fb5] - doc: fix rare case of misaligned columns (Roman Reiss) #3948
  • [f0a2e2cdec] - doc: message.header duplication correction (Bryan English) #3997
  • [b1dfa8bebb] - doc: fix typo in README (Rich Trott) #4000
  • [4602e01221] - doc: replace sane with reasonable (Lewis Cowper) #3980
  • [4849a54386] - doc: Adding best practises for crypto.pbkdf2 (Tom Gallacher) #3290
  • [77251d99de] - doc: numeric flags to fs.open (Carl Lei) #3641
  • [f4ca007b42] - doc: clarify that fs streams expect blocking fd (Carl Lei) #3641
  • [26eeae8016] - doc: fix broken references (Alexander Gromnitsky) #3944
  • [f90227b0e8] - doc: move fs.existsSync() deprecation message (Martin Forsberg) #3942
  • [bbcb2a2e65] - doc: clarify module loading behavior (cjihrig) #3920
  • [0997178037] - doc: add reference for buffer.inspect() (cjihrig) #3921
  • [6c16c40283] - doc: clarify v5.1.1 notable items (Rod Vagg) #4156
  • [4c8800c2de] - fs,doc: use target instead of destination (yorkie) #3912
  • [1f0e8dca8e] - installer: install the tick processor (Matt Loring) #3032
  • [e8e4e0718b] - meta: remove use of profanity in source (Myles Borins) #4122
  • [13834caa28] - module: fix column offsets in errors (Tristian Flanagan) #2867
  • [8988e1e117] - module,repl: remove repl require() hack (Ben Noordhuis) #4026
  • [baac81d95f] - net: add local address/port for better errors (Jan Schär) #3946
  • [12754c5dc3] - net: small code cleanup (Jan Schär) #3943
  • [8a5e4345fd] - node: s/doNTCallbackX/nextTickCallbackWithXArgs/ (Rod Vagg) #4167
  • [0869ef3c55] - (SEMVER-MINOR) repl: allow leading period in multiline input (Zirak) #3835
  • [aaab108dfe] - repl: attach location info to syntax errors (cjihrig) #4013
  • [9e9346fa32] - src: use GetCurrentProcessId() for process.pid (Ben Noordhuis) #4163
  • [d969c0965c] - src: define Is* util functions with macros (cjihrig) #4118
  • [458facdf66] - src: define getpid() based on OS (cjihrig) #4146
  • [7e18f2ec62] - (SEMVER-MINOR) src: add BE support to StringBytes::Encode() (Bryon Leung) #3410
  • [756ab9caad] - stream: be less eager with readable flag (Brian White) #4141
  • [8f845ba28a] - stream_wrap: error if stream has StringDecoder (Fedor Indutny) #4031
  • [1c1af81ea0] - streams: update .readable/.writable to false (Brian White) #4083
  • [1d50819c85] - test: check range fix for slowToString (Sakthipriyan Vairamani) #4019
  • [0c2a0dc859] - test: skip long path tests on non-Windows (Rafał Pocztarski) #4116
  • [8a60aa1303] - test: don't check the # of chunks in test-http-1.0 (Santiago Gimeno) #3961
  • [e84aeec883] - test: mark test-cluster-shared-leak flaky (Rich Trott) #4162
  • [b3f3b2e157] - test: fix cluster-worker-isdead (Santiago Gimeno) #3954
  • [da6be4d31a] - test: fix time resolution constraint (Gireesh Punathil) #3981
  • [9d16729b20] - test: skip instead of fail when mem constrained (Michael Cornacchia) #3697
  • [be41eb751b] - test: refactor test-http-exit-delay (Rich Trott) #4055
  • [4b43bf0385] - test: fix flaky test-net-socket-local-address (Rich Trott) #4109
  • [cb55c67a00] - test: improve cluster-disconnect-handles test (Brian White) #4084
  • [2b5b127e14] - test: fix cluster-disconnect-handles flakiness (Santiago Gimeno) #4009
  • [430264817b] - test: add test for repl.defineCommand() (Bryan English) #3908
  • [22b0971222] - test: eliminate multicast test FreeBSD flakiness (Rich Trott) #4042
  • [c50003746b] - test: mark test flaky on FreeBSD (Rich Trott) #4016
  • [69c95bbdb7] - test: move ArrayStream to common (cjihrig) #4027
  • [d94a70ec51] - test: fix test-domain-exit-dispose-again (Julien Gilli) #3990
  • [00b839a2b8] - test: use platform-based timeout for reliability (Rich Trott) #4015
  • [054a216b6f] - test: mark cluster-net-send test flaky on windows (Rich Trott) #4006
  • [d0621c5649] - test: mark fork regression test flaky on windows (Rich Trott) #4005
  • [19ed33df80] - test: skip test if in FreeBSD jail (Rich Trott) #3995
  • [a863e8d667] - test: remove flaky status for cluster test (Rich Trott) #3975
  • [dd0d15fc47] - test: add TAP diagnostic message for retried tests (Rich Trott) #3960
  • [1fe4d30efc] - test: retry on smartos if ECONNREFUSED (Rich Trott) #3941
  • [665a35d45e] - test: address flaky test-http-client-timeout-event (Rich Trott) #3968
  • [f9fe0aee53] - test: numeric flags to fs.open (Carl Lei) #3641
  • [54aafa17af] - test: http complete list of non-concat headers (Bryan English) #3930
  • [788541b40c] - test: fix race condition in unrefd interval test (Michael Cornacchia) #3550
  • [e129d83996] - test: skip/replace weak crypto tests in FIPS mode (Stefan Budeanu) #3757
  • [bc27379453] - test: avoid test timeouts on rpi (Stefan Budeanu) #3902
  • [272732e76b] - test: fix flaky test-child-process-spawnsync-input (Rich Trott) #3889
  • [781f8c0d1e] - test: add OS X to module loading error test (Evan Lucas) #3901
  • [f99c6363de] - test: module loading error fix solaris node5: test-module-loading-error.js fails #3798 (fansworld-claudio) #3855
  • [1279adc756] - timers: optimize callback call: bind -> arrow (Andrei Sedoi) #4038
  • [d7a7d3e6f7] - tools: update certdata.txt (Ben Noordhuis) #3951
  • [1b434e0654] - util: determine object types in C++ (cjihrig) #4100
  • [c93e2678f0] - util: fix constructor/instanceof checks (Brian White) #3385
  • [098a3113e1] - util: move .decorateErrorStack to internal/util (Ben Noordhuis) #4026
  • [e68ea16c32] - util: add decorateErrorStack() (cjihrig) #4013
  • [c584c3e08f] - util,src: allow lookup of hidden values (cjihrig) #3988

Commits that are on master since v5.1.0 that are not labelled with semver-major but are not included in v5.x are:

I think we need a label for these to say they shouldn't be cherry-picked to v5.x.


Junliang Yan and others added 30 commits October 29, 2015 13:16
Fix the following error message in windows using VS 2013:

    LINK : fatal error LNK1194: cannot delay-load 'node.exe'
    due to import of data symbol '"__declspec(dllimport)
    const v8::OutputStream::`vftable'"
    (__imp_??_7OutputStream@v8@@6b@)'; link without
    /DELAYLOAD:node.exe

PR-URL: #3572
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
The documentation indicates that child.send() returns a boolean but it
has returned undefinined at since v0.12.0. It now returns a boolean per
the (slightly updated) documentation.

PR-URL: #3516
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Currently util.format is being used for string templating in tls.
By replacing all of the instances of util.format with backtick
string we can remove the need to require util in tls all together.

PR-URL: #3456
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Notable changes:

* buffer: (Breaking) Removed both 'raw' and 'raws' encoding types from Buffer,
  these have been deprecated for a long time (Sakthipriyan Vairamani) #2859.
* console: (Breaking) Values reported by console.time() now have 3 decimals of
  accuracy added (Michaël Zasso) #3166.
* fs:
  - fs.readFile*(), fs.writeFile*(), and fs.appendFile*() now also accept a file
    descriptor as their first argument (Johannes Wüller) #3163.
  - (Breaking) In fs.readFile(), if an encoding is specified and the internal
    toString() fails the error is no longer thrown but is passed to the callback
    (Evan Lucas) #3485.
  - (Breaking) In fs.read() (using the fs.read(fd, length, position, encoding,
    callback) form), if the internal toString() fails the error is no longer
    thrown but is passed to the callback (Evan Lucas) #3503.
* http:
  - Fixed a bug where pipelined http requests would stall (Fedor Indutny) #3342.
  - (Breaking) When parsing HTTP, don't add duplicates of the following headers:
    Retry-After, ETag, Last-Modified, Server, Age, Expires. This is in addition
    to the following headers which already block duplicates: Content-Type,
    Content-Length, User-Agent, Referer, Host, Authorization,
    Proxy-Authorization, If-Modified-Since, If-Unmodified-Since, From, Location,
    Max-Forwards (James M Snell) #3090.
  - (Breaking) The callback argument to OutgoingMessage#setTimeout() must be a
    function or a TypeError is thrown (James M Snell) #3090.
  - (Breaking) HTTP methods and header names must now conform to the RFC 2616
    "token" rule, a list of allowed characters that excludes control characters
    and a number of separator characters. Specifically, methods and header names
    must now match /^[a-zA-Z0-9_!#$%&'*+.^`|~-]+$/ or a TypeError will be thrown
    (James M Snell) #2526.
* node:
  - (Breaking) Deprecated the _linklist module (Rich Trott) #3078.
  - (Breaking) Removed require.paths and require.registerExtension(), both had
    been previously set to throw Error when accessed
    (Sakthipriyan Vairamani) #2922.
* npm: Upgraded to version 3.3.6 from 2.14.7, see
  https://github.com/npm/npm/releases/tag/v3.3.6 for more details. This is a
  major version bump for npm and it has seen a significant amount of change.
  Please see the original npm v3.0.0 release notes for a list of major changes
  (Rebecca Turner) #3310.
* src: (Breaking) Bumped NODE_MODULE_VERSION to 47 from 46, this is necessary
  due to the V8 upgrade. Native add-ons will need to be recompiled
  (Rod Vagg) #3400.
* timers: Attempt to reuse the timer handle for setTimeout().unref(). This fixes
  a long-standing known issue where unrefed timers would perviously hold
  beforeExit open (Fedor Indutny) #3407.
* tls:
  - Added ALPN Support (Shigeki Ohtsu) #2564.
  - TLS options can now be passed in an object to createSecurePair()
    (Коренберг Марк) #2441.
  - (Breaking) The default minimum DH key size for tls.connect() is now 1024
    bits and a warning is shown when DH key size is less than 2048 bits. This a security consideration to prevent "logjam" attacks. A new minDHSize TLS
    option can be used to override the default. (Shigeki Ohtsu) #1831.
* util:
  - (Breaking) util.p() was deprecated for years, and has now been removed
    (Wyatt Preul) #3432.
  - (Breaking) util.inherits() can now work with ES6 classes. This is considered
    a breaking change because of potential subtle side-effects caused by a
    change from directly reassigning the prototype of the constructor using
    `ctor.prototype = Object.create(superCtor.prototype, { constructor: { ... } })`
    to using `Object.setPrototypeOf(ctor.prototype, superCtor.prototype)`
    (Michaël Zasso) #3455.
* v8: (Breaking) Upgraded to 4.6.85.25 from 4.5.103.35 (Ali Ijaz Sheikh) #3351.
  - Implements the spread operator, see
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator
    for further information.
  - Implements new.target, see
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new.target
    for further information.
* zlib: Decompression now throws on truncated input (e.g. unexpected end of
  file) (Yuval Brik) #2595.

PR-URL: #3466
Remove the `-e` argument from process.execArgv in child_process.fork()
to keep `node -e 'require("child_process").fork("empty.js")'` from
spawning itself recursively.

Fixes: #3574
PR-URL: #3575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This reverts commit ff877e9.

Reverted for breaking `node --debug-brk -e 0`.  It should immediately
quit but instead it hangs now.

PR-URL: #3585
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Check that `node --debug-brk -e 0` immediately quits.

PR-URL: #3585
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This is to ensure that it is evaluated the same way it would be if it
were to be run by node or required.

Before, the following would pass if run by node, but fail if run via
the syntax check flag:

    if (true) {
      return;
    }

Now, this will pass the syntax check

PR-URL: #3587
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This makes the code spans in the API docs more visible and
therefore readable by adding some background color.

PR-URL: #3573
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Previous change reinstated returning boolean from child.send() but
missed one instance where undefined might be returned instead.

PR-URL: #3577
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Includes two patches for AIX. Adds support for both 32-bit and 64-bit
files[0] and uses -RPf for cp instead of -af (which is unsupported)[1]

[0] https://codereview.chromium.org/1319663007
[1] https://codereview.chromium.org/1368133002

PR-URL: #3487
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
This issue has already submitted to the upstream in
https://code.google.com/p/gyp/issues/detail?id=477
Use this commit until the upstream is to be fixed.

PR-URL: #1325
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: #3576
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Fix regarding description of the following functions:

Certificate.exportPublicKey(spkac)
Certificate.exportChallenge(spkac)

The descriptions were applied incorrectly.

PR-URL: #3614
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Neuter external `nullptr` buffers, otherwise their contents will be
materialized on access, and the buffer instance will be internalized.

This leads to a crash like this:

    v8::ArrayBuffer::Neuter Only externalized ArrayBuffers can be
    neutered

Fix: #3619
PR-URL: #3624
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: #3599
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
PR-URL: #3599
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
PR-URL: #3599
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
This test was marked flaky after failing in CI on arm7-wheezy two months
ago. It has not failed there since. This commit removes the flaky
designation.

Fixes: #2554
PR-URL: #3620
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
When setTimeout() and setInterval() are called with `delay` greater than
TIMEOUT_MAX (2147483647), the supplied value is ignored and 1 is used
instead. Add a note about this in the timers docs.

PR-URL: #3512
Reviewed-By: Trevor Norris <trev.norris@gmai.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
test-http-pipeline-flood has been flaky on Windows for some time.
Hopefully, #2862 fixes it and
lands soon, but until then, let's mark it as flaky.

PR-URL: #3616
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Check that trying to use a < 1024 bits DH key throws an exception.

parallel/test-tls-dhe tests this as well but it feels incongruous not to
do it here when both tests have similar logic for 1024/2048 bits keys.

PR-URL: #3629
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Check that tls.connect() fails in the expected way when passing in
invalid minDHSize options.

PR-URL: #3629
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Previously, if we are unable to open the history file, an error would
be thrown. Now, print an error message that we could not open
the history file, but don't fail.

Fixes: #3610
PR-URL: #3630
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Minor typo fix in the list of keys

Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #3649
significant updates:

* [[`777ba4eded`](777ba4eded)] - **src**: introduce `http_parser_url_init` (Fedor Indutny) [nodejs/http-parser#225](nodejs/http-parser#225)
* [[`e557b62744`](e557b62744)] - **src**: support LINK/UNLINK (RFC 2068, draft-snell-link-method) (Olivier Mengué) [nodejs/http-parser#267](nodejs/http-parser#267)
* [[`eb5e9928b4`](eb5e9928b4)] - **src**: support ACL (WebDAV, RFC3744, Section 8.1). (Ivan Enderlin) [nodejs/http-parser#260](nodejs/http-parser#260)
* [[`8b1d652322`](8b1d652322)] - **src**: support BIND/REBIND/UNBIND (WebDAV, RFC5842) (Ivan Enderlin) [nodejs/http-parser#242](nodejs/http-parser#242)
* [[`7d75dd7325`](7d75dd7325)] - **src**: support IPv6 Zone ID as per RFC 6874 (Tatsuhiro Tsujikawa) [nodejs/http-parser#253](nodejs/http-parser#253)

PR-URL: #3569
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
PR-URL: #3533
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Fixed an intermittent issue on AIX where the 600ms timeout was reached
before the 'connection' event was fired. This resulted in a failure as
serverConnection would be undefined and the assert.equal would throw an
error. Changed the flow of the test so that the timeout is only set
after a connection has been made.

PR-URL: #3646
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
jasnell and others added 28 commits December 5, 2015 17:42
Charter for the HTTP Working Group

PR-URL: #3919
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
PR-URL: #4142
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rebecca Turner <me@re-becca.org>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #4144
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: Kat Marchán <kzm@sykosomatic.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #4143
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <http://www.cjihrig.com>
Reviewed-By: Kat Marchán <kzm@sykosomatic.org>
Reviewed-By: James M Snell <jasnell@gmail.com>
94b9948 added unistd.h to src/env.cc in order to use getpid().
However, this doesn't exist on Windows. This commit conditionally
defines getpid() based on the OS.

Fixes: #4145
PR-URL: #4146
Reviewed-By: Brian White <mscdex@mscdex.net>
As of 34b535f, test-child-process-flush-stdio was failing
on CentOS 5 systems in CI due to the change in stream state
checking in `child_process`. This commit fixes those failures
by making readable streams less eager in setting their readable
flag on EOF.

Fixes: #4125
PR-URL: #4141
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
test-http-exit-delay was introduced to confirm the removal of a 1 second
delay that can occur when exiting node after an http request.

This change refactors the test for simplicity and also in the hopes of
either eliminating flakiness on CI or, if not that, at least making
the source of the flakiness easier to track down.

Ref: 16b59cbc
Fixes: #4045
PR-URL: #4055
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #4138
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
The Is* type checking functions in node_util.cc are mostly
the same boilerplate. This commit defines them using a macro.

Refs: #4100
PR-URL: #4118
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
The current implementation of tests for strings with length at or
exceeding kStringMaxLength allocate a temporary buffer inside a try
block to skip the test if there is insufficient memory. This commit adds
an invocation of the garbage collector after the temporary buffer is
allocated so that memory is freed for later allocations.

Change the corresponding catch block to rethrow the original exception
instead of asserting the exception message to provide more information
about the exception.

Add an additional check before trying to allocate memory to immediately
skip the test on machines with insufficient total memory.

PR-URL: #3697
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
PR-URL: #3998
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
The modification time of a file is assumed to happen at the
exact time when it was requested. As the utime API specification
delcares that the resolution of the result is 1 second,
relax the constrain to 1 second helps the test case to be
robust and consistent under different load conditions in the system

PR-URL: #3981
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Commit a9c0c65 ("src: define getpid() based on OS") made src/env.cc
use `GetCurrentProcessId()` on Windows for the PID in log messages.
`GetCurrentProcessId()` is also what is used by libuv, OpenSSL and V8.

This commit makes `process.pid` use `GetCurrentProcessId()` instead of
`_getpid()` for consistency.

PR-URL: #4163
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
The Buffer constructor will generally get inlined, but any call to the Buffer
constructor for a string without encoding will cause an eager deoptimization
of any function that inlined the Buffer constructor. This is due to a an
out-of-bounds read on `arguments[1]`. This change prevents that deopt.

PR-URL: #4158
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Check if the worker 'isDead' instead of 'isConnected' as the
'disconnect' event is not guaranteed to be received before the
'exit' event.
Remove the 'net' dependency as it is not used.

PR-URL: #3954
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Change url.format's references to slash postfixing to reflect
true behaviour (it only automatically postfixes slashes to the
slashedProtocols when host is present).

Fixes: #3361

PR-URL: #4119
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
PR-URL: #3912
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
test-cluster-shared-leak is flaky on Windows.

Refs: #3956

PR-URL: #4162
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Roman Klauke <romaaan.git@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
If `.setEncoding` was called on input stream - all emitted `data` will
be `String`s instances, not `Buffer`s. This is unacceptable for
`StreamWrap`, and should not lead to the crash.

Fix: #3970
PR-URL: #4031
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
As it can happen that the HTTP response is received in more than
one TCP chunk.

PR-URL: #3961
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
A lot of machines don't upgrade libstdc++.so library for a long time,
but the new version of node requires the latest GLIBCXX.

Using "--fully-static" configurable options may resolve this problem,
but the side effect is that the size of the executable file will be
increased.

Adding "--partly-static" configurable options it will only build
libgcc and libstdc++ libraries into executable file, resolve the
problem and control the size of file.

PR-URL: #4152
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
If not running on Windows it skips the long path tests in:

* test-fs-long-path.js
* test-require-long-path.js

Fixes: #2255
PR-URL: #4116
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
These changes simplify using ECDH with private keys that are not
dynamically generated with ECDH.generateKeys.

Support for computing the public key corresponding to the given private
key was added. Validity checks to reduce the possibility of computing
a weak or invalid shared secret were also added.

Finally, ECDH.setPublicKey was softly deprecated.

PR-URL: #3511
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Rename doNTCallback functions for clarity when profiling, these make
sense internally but the "NT" in particular is a bit obtuse to be
immediately understandable by non-core developers.

PR-URL: #4167
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
If `start` is not a valid number in the range, then the default value
zero will be used. Same way, if `end` is not a valid number in the
accepted range, then, by default, the length of the buffer is assumed.

Fixes: #2668
Ref: #2919
PR-URL: #4019
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Verify that start and end are coerced properly.

Ref: #2919
PR-URL: #4019
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
If JS throws an object whose toString() method throws, then Node
attempts to print an empty message, but actually prints garbage.
This commit checks for this case, and prints a message instead.

Fixes: #4079
PR-URL: #4112
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
@rvagg
Copy link
Member Author

rvagg commented Dec 8, 2015

wrong branch .. derp, moving to #4181

@rvagg rvagg closed this Dec 8, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.