FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

test,win: speedup tls-server-verify by orangemocha · Pull Request #1836 · nodejs/node · GitHub

/ node Public

test,win: speedup tls-server-verify - #1836

Closed
orangemocha wants to merge 6 commits into
nodejs:masterfrom
JaneaSystems:joaocgreis-io-tls-server-verify
Closed

test,win: speedup tls-server-verify#1836
orangemocha wants to merge 6 commits into
nodejs:masterfrom
JaneaSystems:joaocgreis-io-tls-server-verify

Conversation

Copy link
Copy Markdown
Contributor

Addresses #1461 (and nodejs/node-v0.x-archive#25279 once ported there).

With the -no-rand-screen changes, the test is now much much faster (less than 1s on my machine). I am not sure however if speeding up a test is a good justification for adding a floating patch in openssl. I added all the commits in here to get more feedback.

Copy link
Copy Markdown
Contributor Author

cc @nodejs/crypto

Fishrock123 added windows Issues and PRs related to the Windows platform. test Issues and PRs related to the tests. openssl Issues and PRs related to the OpenSSL dependency. labels May 29, 2015

Copy link
Copy Markdown
Contributor

<3

rvagg commented May 30, 2015

Copy link
Copy Markdown
Member

what are the chances of getting these upstreamed to openssl?

shigeki commented May 30, 2015

Copy link
Copy Markdown
Contributor

@rvagg No chance because this makes a client connection be in a low entropy state. This change only applied to openssl s_client command on Windows and no affects to libopenssl.a so that iojs has a good entropy state.

Copy link
Copy Markdown
Contributor

@shigeki Why is it a low entropy? RAND_poll(CryptGenRandom) still gets called and for the CI the screen content is always the same, so not much entropy added in this case.

Comment thread deps/openssl/openssl/apps/s_client.c Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Nitpick: name it -no_rand_screen for consistency with other options.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

I agree it. Fixed.

shigeki commented Jun 1, 2015

Copy link
Copy Markdown
Contributor

@mathiask88 I should have written it as "lower than the current". I don't think it is absolutely low for RAND_add with CryptGenRandom but I can't say it is enough high without RAND_screen for general uses. In CI, I agree that we need not it for this server-verify tests.

shigeki commented Jun 1, 2015

Copy link
Copy Markdown
Contributor

@orangemocha According to Ben's comments, my commits were updated in shigeki@833b236 , shigeki@9f0f7c3 and shigeki@2ff517e .

joaocgreis and others added 6 commits June 1, 2015 18:27
OpenSSL s_client introduces some delay on Windows. With all clients
running sequentially, this delay is big enough to break CI. This fix runs
the clients in parallel (unless the test includes renegotiation),
reducing the total run time.

(cherry picked from commit 12d4ea3c8ae7f8011de9ca9f50bdc08ee8cfb8bf)
Different servers must use different ports. Since we can count only on
common.PORT and common.PORT+1, run only 2 servers in parallel.

(cherry picked from commit efb0075ee0e1f4123974fe5b74ded8727bad4a9e)
When running in parallel, it is not easy to identify what server and
client failed when the test fails. This adds identifiers to all lines
of console output.

(cherry picked from commit 29c651522df2f47c4360660264eb857fb6232b23)
For better performance of the test, the parent kills child processes
so as not to wait them to be ended.

(cherry picked from commit 833b23636045f7afc929196139021630a390391a)
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.

(cherry picked from commit 9f0f7c38e6df975dd39735d0e9ef968076369c74)
This improves the performance of openssl s_client on Windows and
gains several seconds to finish test-tls-server-verify.

(cherry picked from commit 2ff517e0e410ea33ba5a3d289a82fc315d120e8e)
joaocgreis force-pushed the joaocgreis-io-tls-server-verify branch from ec14721 to e809f01 Compare June 1, 2015 17:59

Copy link
Copy Markdown
Member

@bnoordhuis Thanks for your comments, I updated my commits. I also picked the updated commits from @shigeki .

Copy link
Copy Markdown
Member

Copy link
Copy Markdown
Contributor Author

Thanks, @bnoordhuis . I will land this shortly.

joaocgreis added a commit to JaneaSystems/node that referenced this pull request Jun 3, 2015
OpenSSL s_client introduces some delay on Windows. With all clients
running sequentially, this delay is big enough to break CI. This fix runs
the clients in parallel (unless the test includes renegotiation),
reducing the total run time.

Fixes: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
joaocgreis added a commit to JaneaSystems/node that referenced this pull request Jun 3, 2015
Different servers must use different ports. Since we can count only on
common.PORT and common.PORT+1, run only 2 servers in parallel.

Fixes: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Fishrock123 pushed a commit to Fishrock123/node that referenced this pull request May 4, 2016
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: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit to MylesBorins/node that referenced this pull request May 4, 2016
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: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins pushed a commit to MylesBorins/node that referenced this pull request May 4, 2016
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: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
MylesBorins mentioned this pull request May 4, 2016
shigeki pushed a commit to shigeki/node that referenced this pull request Sep 22, 2016
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: nodejs#1461
PR-URL: nodejs#1836
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
italoacasas mentioned this pull request Jan 29, 2017
jasnell mentioned this pull request Jun 5, 2017
MylesBorins mentioned this pull request Jul 18, 2017
MylesBorins mentioned this pull request Sep 20, 2017
MylesBorins mentioned this pull request Oct 25, 2017
MylesBorins mentioned this pull request Nov 3, 2017
gibfahn mentioned this pull request Nov 5, 2017
cjihrig mentioned this pull request Nov 6, 2017
This was referenced Dec 7, 2017
MylesBorins mentioned this pull request Aug 17, 2018
BethGriggs mentioned this pull request Sep 19, 2019
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

openssl Issues and PRs related to the OpenSSL dependency. test Issues and PRs related to the tests. windows Issues and PRs related to the Windows platform.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants


Back | FazBrowse Home | New Git URL