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

test: add -no_rand_screen to s_client opts on Win #2209

Closed
wants to merge 1 commit into from

Conversation

shigeki
Copy link
Contributor

@shigeki shigeki commented Jul 21, 2015

RAND_screen() causes stability issues in invoking openssl-cli s_client on win2008r2 in CI. Disable to use it by adding -no_rand_screen options to all tls tests that use common.opensslCli.

The result of CI is https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/173/. There are existed errors on Ubuntu15 and arm but tls test errors on Win2008 are resolved as I've also made several tests on iojs+pr+win.

Fixes: #2150

R= @joaocgreis, @orangemocha or @rvagg

RAND_screen() causes stability issues in invoking openssl-cli s_client
on win2008r2 in CI. Disable to use it by adding -no_rand_screen
options to all tls tests that use common.opensslCli.
@Fishrock123
Copy link
Contributor

We added -no_rand_screen, right?

How does enabling a flag we added help address an issue we've only recently been having? (I think?)

@Fishrock123 Fishrock123 added test Issues and PRs related to the tests. openssl Issues and PRs related to the OpenSSL dependency. labels Jul 21, 2015
@shigeki
Copy link
Contributor Author

shigeki commented Jul 21, 2015

How does enabling a flag we added help address an issue we've only recently been having? (I think?)

I think it would be hard.

Another approach is to build openssl-Cli without RAND_screen() by default on Win by adding and having such as -DNO_RAND_SCREEN so that no one would care about RAND_screen() issues in writing tls tests in the future. Or we change the flag name -with_rand_screen and the default value is not using RAND_screen().

@Fishrock123
Copy link
Contributor

I think I should re-phrase: do we know any bits why RAND_screen() is unstable on win200r2 or why this has only popped up in like, the last month-ish?

@shigeki
Copy link
Contributor Author

shigeki commented Jul 21, 2015

I think I should re-phrase: do we know any bits why RAND_screen() is unstable on win200r2 or why this has only popped up in like, the last month-ish?

I don't know it. The debug tests only show that GetDIBits() API gets crash. There seems something wrong on obtaining screen bitmap data at y=528 on that machine.

@Fishrock123
Copy link
Contributor

I don't know it. The debug tests only show that GetDIBits() API gets crash. There seems something wrong on obtaining screen bitmap data at y=528 on that machine.

@nodejs/build how many windows2008r2 machines do we have? Can we try removing the machine that has this problem if if it seems to only be one? If so, maybe it is faulty?

@jbergstroem
Copy link
Member

@Fishrock123 two of them. iojs-rackspace-win2008r2-2 fails in one case but seems to pass in another.

@Fishrock123
Copy link
Contributor

@shigeki any idea if RAND_screen() / GetDIBits() was changed in a recent-ish OpenSSL upgrade?

@shigeki
Copy link
Contributor Author

shigeki commented Jul 21, 2015

@Fishrock123 openssl/openssl@5015a93#diff-805d74d112f0f5faa66b6e5676afa328 is the commit of that and it was about 10 months ago. iojs has it since upgrading 1.0.2a in this April.

@brendanashworth brendanashworth added the windows Issues and PRs related to the Windows platform. label Jul 21, 2015
@rvagg
Copy link
Member

rvagg commented Jul 21, 2015

We've changed the way we're logging in for jenkins on the windows machines (2008 and 2012), we've gone from running jenkins as a service to running jenkins manually from a cmd session via RDP and now we're running an auto-login session and starting jenkins in a terminal there. I'd be willing to bet this can be traced somehow to that change.

I'm +1 on this solution @shigeki, it's more robust to exclude RAND_screen() anyway although it does add noise to the tests but that's just one of the costs Windows adds so lgtm.

@joaocgreis
Copy link
Member

LGTM

It would be good to find the root cause of this, but both @shigeki and me have spent some time investigating (#2150) and so far we couldn't find it. This openssl-cli is only used in the tests as a tool to test io.js, and RAND_screen() has been an issue before. For now, unblocking CI is a priority, and I think this patch is the correct way to do it. We should leave the original issue open and investigate it further.

@Fishrock123
Copy link
Contributor

👍 then.

@thefourtheye
Copy link
Contributor

Can we use common.isWindows everywhere in the tests?

@shigeki
Copy link
Contributor Author

shigeki commented Jul 22, 2015

@thefourtheye Yes, we can but there are other 50 tests using process.platform === 'win32'. It should be another PR to replace them all.

@thefourtheye
Copy link
Contributor

@shigeki Oh okay. I ll take care of them once this lands. But I feel that at least the new changes should use common. But that should not block this PR from landing.

shigeki pushed a commit that referenced this pull request Jul 22, 2015
RAND_screen() causes stability issues in invoking openssl-cli s_client
on win2008r2 in CI. Disable to use it by adding -no_rand_screen
options to all tls tests that use common.opensslCli.

Fixes: #2150
PR-URL: #2209
Reviewed-By: Rod Vagg <[email protected]>
Reviewed-By: Joao Reis <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
@shigeki
Copy link
Contributor Author

shigeki commented Jul 22, 2015

Thanks reviewing, everyone. Landed in ac7d3fa.
@thefourtheye Thanks. I don't want to make a kind of refactoring after reviewing unless it has a bug.

@shigeki shigeki closed this Jul 22, 2015
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.

Intermittent but regular TLS failures
7 participants