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

not ok 44 - Can connect to a Cro::SSL::Listener with ALPN set up with ALPN from client #1

Open
coke opened this issue Sep 3, 2017 · 8 comments
Assignees

Comments

@coke
Copy link

coke commented Sep 3, 2017

Cloned, did a 'zef install --deps-only .'

$ PERL6LIB=lib perl6 t/ssl.t

Then dies with:

ok 42 - Response had correct data
ok 43 - Establishing connection dies once service is stopped
not ok 44 - Can connect to a Cro::SSL::Listener with ALPN set up with ALPN from client
# Failed test 'Can connect to a Cro::SSL::Listener with ALPN set up with ALPN from client'
# at t/ssl.t line 204
# expected: 'Kept'
#      got: 'Broken'
Unhandled exception in code scheduled on thread 12
Cannot locate symbol 'SSL_CTX_set_alpn_select_cb' in native library 'libssl.dylib'
  in block  at /Users/wcoleda001/.rakudobrew/moar-nom/install/share/perl6/site/sources/7F35A0DCF0EB61FFAE03FF479C6936141F4E9AA6 (IO::Socket::Async::SSL) line 267
  in block  at /Users/wcoleda001/.rakudobrew/moar-nom/install/share/perl6/site/sources/7F35A0DCF0EB61FFAE03FF479C6936141F4E9AA6 (IO::Socket::Async::SSL) line 243
@Altai-man
Copy link
Member

What is the version of openssl you use(and OS running)? It seems that it does not support ALPN. You cannot use it if the underlying library does not support it.

If it is the reason of your issue, you need to build/get openssl with ALPN support enabled.
Or it's not very pretty test's failing message concerns you?

@jnthn
Copy link
Member

jnthn commented Sep 4, 2017

@Altai-man Obviously those without an ALPN-supporting OpenSSL won't be able to use the things that depend on it (that is, HTTP/1.1 vs. HTTP/2 selection), but Cro::SSL is useful for building HTTP/1.1 services over SSL, for example. So I think we should check if ALPN is available and skip these tests if not, so you get a clean test run at least in that case.

People having an OpenSSL without ALPN will be sorta common for a while, as it takes time for things to make it into distros, and only a handful of them actually have a new enough OpenSSL.

@Altai-man Altai-man self-assigned this Sep 4, 2017
@Altai-man
Copy link
Member

@jnthn, for some reason, I've always thought that because of Security OpenSSL updates must be regular for everyone... It seems, not for everyone.

I'll look into it today, to do these tests optional in the same manner as Async::SSL tests it.

@Altai-man
Copy link
Member

Should be fixed with croservices/cro-ssl@1c03065
@coke, can you confirm the fix?

@MattOates
Copy link

MattOates commented Sep 16, 2017

I have this is issue on macOS Sierra 10.12.6 with a local OpenSSL as well as the latest from homebrew "openssl 1.0.2l". If the last patch is in master and what is pulled down with zef right now, then its still blocking install.

@Altai-man
Copy link
Member

@MattOates, can you provide your installation log?

@MattOates
Copy link

https://gist.github.com/MattOates/a3cef012a764df43a339e377d36c7a15 there are also a lot more scary looking errors post force installing Cro::SSL

@Altai-man
Copy link
Member

Let's look on it step by step...

Cannot locate symbol 'SSL_CTX_set_alpn_select_cb' in native library 'libssl.dylib'

It looks like there is no guards in tests, that were added in croservices/cro-ssl@1c03065
And there are currently Crl::TLS replacing Cro::SSL. Merge is 13 hours old, so it is a bit odd that it tries to install Cro::SSL instead.

HTTP/2 is requested, but ALPN is not supported at t/http-client.t line 125

Hmmm. This one should pack http/1.1 for this line.

Unhandled exception: getexpayload needs a VMException, got P6opaque (X::Method::NotFound)

Looks scary. Maybe @jnthn knows more about this one?

Failed test 'Correct responses logged'

Odd. It was fixed with croservices/cro-http@21e4076 - it totally looks like you are using an old versions of libraries.

As for services-related failures - I think it wants a new, separate issue.

Can you try zef update and then zef --verbose install Cro?

Or by hands clone latest repositories in reverse order(i.e. Core -> TLS -> HTTP -> WebSocket -> Cro) and try to install it manually with zef --vebrose install . in each module directory?

@jnthn jnthn transferred this issue from croservices/cro-ssl Nov 4, 2019
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

4 participants