-
Notifications
You must be signed in to change notification settings - Fork 30k
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
(v6.x backport) child_process: fix deoptimizing use of arguments #13752
(v6.x backport) child_process: fix deoptimizing use of arguments #13752
Conversation
When upgrading OpenSSL, Step 6 in upgrading guide explains the steps that need to be taken if asm files need updating. This might not always be the case and something that needs to be checked from release to release. This commit adds an example of using github to manually compare two tags to see if any changes were made to asm files. PR-URL: #13234 Backport-PR-URL: #13695 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
All symlink files in deps/openssl/openssl/include/openssl/ are removed and replaced with real header files to avoid issues on Windows. Two files of opensslconf.h in crypto and include dir are replaced to refer config/opensslconf.h. Fixes: #13161 PR-URL: #13233 Backport-PR-URL: #13695 Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
See https://mta.openssl.org/pipermail/openssl-dev/2015-February/000651.html iojs needs to stop using masm and move to nasm or yasm on Win32. Fixes: #589 PR-URL: #1389 Backport-PR-URL: #13695 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
In openssl s_client on Windows, RAND_screen() is invoked to initialize random state but it takes several seconds in each connection. This added -no_rand_screen to openssl s_client on Windows to skip RAND_screen() and gets a better performance in the unit test of test-tls-server-verify. Do not enable this except to use in the unit test. Fixes: #1461 PR-URL: #1836 Backport-PR-URL: #13695 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Regenerate asm files with Makefile and CC=gcc and ASM=nasm where gcc version was 5.4.0 and nasm version was 2.11.08. Also asm files in asm_obsolete dir to support old compiler and assembler are regenerated without CC and ASM envs. Fixes: #13161 PR-URL: #13233 Backport-PR-URL: #13695 Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Added the missing make command in steps 6.3 when building asm_obsolete. Also updated the commit message to include the version nasm in addition to the gcc version. Fixes: #13161 PR-URL: #13233 Backport-PR-URL: #13695 Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Refactor test for situations where it was expected to fail. Move from disabled directory to parallel. PR-URL: #12403 Backport-PR-URL: #13060 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Add documentation for `common.crashOnUnhandledRejection()`. Ref: https://github.com/nodejs/node/pull/12489/files/a9c2078a60bc3012dc6156df19772697a56a2517#r113737423 PR-URL: #12699 Backport-PR-URL: #13103 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This is a partial backport of semver-patch bits of 9e4660b. This commit fixes the Node process crashing when constructors of classes of the zlib module are given invalid options. * Throw an Error when the zlib library rejects the value of windowBits, instead of crashing with an assertion. * Treat windowBits and memLevel options consistently with other ones and don't crash when non-numeric values are given. PR-URL: #13098 Backport-PR-URL: #13201 Fixes: #13082 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Functions that call `ECDH::BufferToPoint` were not clearing the error stack on failure, so an invalid key could leave leftover error state and cause subsequent (unrelated) signing operations to fail. PR-URL: #13275 Backport-PR-URL: #13397 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This is a local patch because upstream fixed it differently by moving large chunks of code out of objects.h. We cannot easily back-port those changes due to their size and invasiveness. Fixes: #10388 PR-URL: #12392 Backport-PR-URL: #13574 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
The test uses common.PORT, and has already been deleted on master. PR-URL: #13580 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
They tend to hang if they happen to run in parallel with another test that uses common.PORT. PR-URL: #13592 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
@gibfahn I've just roughly checked if it is compatible and can be run on v6. |
@vsemozhetbyt Yes, before and after this PR. |
@gibfahn @mscdex It seems we still have a tiny certain improvement in two cases without any significant downgrade in other ones: Results: improvement confidence p.value
child_process\\child-process-params.js params=1 methodName="exec" n=1000 -0.34 % 4.515010e-01
child_process\\child-process-params.js params=1 methodName="execFile" n=1000 0.12 % 5.251958e-01
child_process\\child-process-params.js params=1 methodName="execFileSync" n=1000 1.14 % 2.147775e-01
child_process\\child-process-params.js params=1 methodName="execSync" n=1000 0.17 % 3.557482e-01
child_process\\child-process-params.js params=1 methodName="spawn" n=1000 0.97 % *** 4.384927e-05
child_process\\child-process-params.js params=1 methodName="spawnSync" n=1000 -0.91 % 5.033024e-01
child_process\\child-process-params.js params=2 methodName="exec" n=1000 -0.06 % 8.951647e-01
child_process\\child-process-params.js params=2 methodName="execFile" n=1000 -0.12 % 5.468676e-01
child_process\\child-process-params.js params=2 methodName="execFileSync" n=1000 0.14 % 8.581547e-01
child_process\\child-process-params.js params=2 methodName="execSync" n=1000 0.01 % 9.721929e-01
child_process\\child-process-params.js params=2 methodName="spawn" n=1000 1.05 % *** 6.128593e-07
child_process\\child-process-params.js params=2 methodName="spawnSync" n=1000 -0.99 % 3.905834e-01
child_process\\child-process-params.js params=3 methodName="exec" n=1000 0.09 % 7.962740e-01
child_process\\child-process-params.js params=3 methodName="execFile" n=1000 0.01 % 9.255018e-01
child_process\\child-process-params.js params=3 methodName="execFileSync" n=1000 -1.30 % 1.967642e-01
child_process\\child-process-params.js params=3 methodName="spawn" n=1000 -0.05 % 7.675626e-01
child_process\\child-process-params.js params=3 methodName="spawnSync" n=1000 -0.81 % 5.329509e-01
child_process\\child-process-params.js params=4 methodName="execFile" n=1000 0.05 % 6.862553e-01 |
In that case maybe we don't need to backport? Unless it helps with the ease of backporting other |
All other things being equal, from a backporting perspective I'd rather minimize the v6.x...master delta where possible. The question is whether the risk is worth it. Given that this has been in v7.x since March I'd say we're okay to backport, however I'd be interested to know how risky people think this PR is. |
Single ARM failure looks like a flake, rerun: https://ci.nodejs.org/job/node-test-commit/10674/ |
@nodejs/performance anyone willing to review this (that it's okay for 6.x)? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
6ef8c5b
to
4c2fa3d
Compare
Landed in 327f11f. @vsemozhetbyt I see you moved |
@gibfahn Yes, this was due to https://bugs.chromium.org/p/v8/issues/detail?id=6010 which is not a case for Node.js v6.x |
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesAffected core subsystem(s)
benchmark, child_process
Backport of #11535
I've removed changes in
execFile()
: one cause was not in code yet, another one is relevant only from v8 5.6.Commit message also was edited: one
Refs
was removed, the wording was a bit corrected. All other metadata was left untouched.I've checked the benchmark with the last v6. We need to run CI for the lib.