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

Windows, Ruby 2.2 thru trunk with SSL #1431

Closed
MSP-Greg opened this issue Oct 7, 2017 · 5 comments
Closed

Windows, Ruby 2.2 thru trunk with SSL #1431

MSP-Greg opened this issue Oct 7, 2017 · 5 comments

Comments

@MSP-Greg
Copy link
Member

MSP-Greg commented Oct 7, 2017

I've been working in several 'extension gem' repos with Windows/appveyor, trunk, and often OpenSSL.

I've got an Appveyor build ran on my fork here, and it's building 2.2 thru trunk with SSL:

  • 2.1.9 no ssl
  • 2.2.6 OpenSSL 1.0.2j
  • 2.3.3 OpenSSL 1.0.2j
  • 2.4.1 OpenSSL 1.0.2k
  • trunk OpenSSL 1.1.0f

All SSL builds show the three checks in extconf.rb passing.

All SSL builds have seven errors (no failures):

Errno::ECONNRESET: An existing connection was forcibly closed by the remote host. - SSL_connect
  TestPumaServerSSLClient#test_verify_fail_if_client_unknown_ca
  TestPumaServerSSLClient#test_verify_fail_if_client_expired_cert

Errno::ECONNABORTED: An established connection was aborted by the software in your host machine.
  TestPumaServerSSL#test_form_submit
  TestPumaServerSSL#test_url_scheme_for_https
  TestPumaServerSSL#test_very_large_return
  TestPumaServerSSLClient#test_verify_client_cert

NoMethodError: undefined method `message' for nil:NilClass
  TestPumaServerSSLClient#test_verify_fail_if_no_client_cert:
    C:/projects/puma/test/test_puma_server_ssl.rb:170:in `assert_ssl_client_error_match'
    C:/projects/puma/test/test_puma_server_ssl.rb:181:in `test_verify_fail_if_no_client_cert'

I've done quite a bit with SSL testing, but I'm not familiar with Puma. So, first goal is just to get the tests passing. If anyone has any suggestions...

@MSP-Greg
Copy link
Member Author

MSP-Greg commented Oct 9, 2017

Some info:

  1. I don't know c.
  2. As stated, all MinGW builds with SSL have the same errors. I didn't build the 1.0.2j or 1.0.2k packages, but I built the 1.1.0f package. All OpenSSL tests passed when building the package, and all ruby trunk OpenSSL tests (test-all and spec) pass.

Hence, the issue seems specific to puma & MinGW. Since I don't know c, nor puma, unlikely that I can find the issue. Conversely, I'll be happy to check/test any suggestions.

Background - 'Ruby for Windows' has transitioned to a much more open & maintainable build system based on MSYS2/MinGW (for instance, current gcc is 7.2.0). I've been very involved in building/testing Ruby trunk/head. I would like to see most popular extension gems building correctly on Windows and also testing with trunk. After all, in just a few months, trunk will be the current release. At present, the Appveyor trunk build (currently, it is my build done on Appveyor) is much more current than the Travis rvm version.

Thanks.

@MSP-Greg
Copy link
Member Author

Windows Appveyor builds are now passing all tests. Results here.

At present, all changes are in one commit here. The issue was that some (but not all) read_nonblock calls were generating an error.

Summing up, with this fix, Ruby 2.2 thru trunk can be build with SSL and all tests will pass.

Is this acceptable as a PR?

@MSP-Greg
Copy link
Member Author

See PR #1439

@nateberkopec
Copy link
Member

Thanks so much @MSP-Greg.

@MSP-Greg
Copy link
Member Author

@nateberkopec

You're welcome. I might be considered over-zealous as to testing, so the trunk build always passes the ruby/ruby tests.

But, I have found a few bugs while running 'local code'.

Hence, if you have any failures, feel free to ping me. Thanks for your work on Puma.

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

No branches or pull requests

2 participants