-
Notifications
You must be signed in to change notification settings - Fork 28
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
Add support for HTTP2 requests in Curl #42
Comments
What is weird is that libnghttp2 is already installed in AL2…
And
So I'm not sure what's missing here. We don't copy |
Forgot to mention: the CURL version in the new layers is |
@mnapoli are you experiencing on x86, arm or both? ❯ docker run --rm -it --entrypoint= public.ecr.aws/lambda/provided:al2-x86_64 find / -iname 'libnghttp*'
/usr/lib64/libnghttp2.so.14.20.0
/usr/lib64/libnghttp2.so.14
/usr/share/licenses/libnghttp2-1.41.0 So... are you experiencing on the true runtime lambda layer, AL2 docker image or both? If only on rumtime lambda layer, worth to double check there's no diff between AL2 docker image & true lambda runtime layers. Then, despite the libnghttp2 is provided, it then depends if installed libcurl has been compiled with libnghttp2 support or not. And it seems that libcurl is not provided by default in AL2 layer. And finally, it depends if php itself has been eventually compiled with libnghttp2. And looks like... yes (at least on x86): ❯ docker run --rm -it --entrypoint=bash bref/php-81:2 ldd /opt/bref/extensions/curl.so | grep nghttp
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f8915550000)
So, maybe Remi compiles php with php support included instead of letting it as a separate extension? So even if the extension looks like to support http2, in fact this extension is unused? Looks like no, because the extension is loaded: bash-4.2# php -m | grep curl
curl I've also tried to not load the extension and then I have to admit, this drives me nuts! |
Some notes for today. The ARM layers do have support for HTTP2. So the problem is limited to x86 layers built from remi's repo. Let's start from scratch (
No luck.
I have opened remicollet/remirepo#228 to try and get some help from Remi. |
We had that issue in Bref 1 previously:
We need to fix that in the new layers as well.
Here is how I checked the problem:
bash
in a Bref containerdocker run --rm -it --entrypoint=bash bref/php-81:1.7.15
docker run --rm -it --entrypoint=bash bref/php-81:2
php -i | grep HTTP2
andphp -r "var_dump(get_defined_constants());" | grep CURL_HTTP
I should see these constants:
But instead I see only these:
In Bref 1, we compiled LIBNGHTTP2. In Bref 2 I'd love to find a solution that doesn't involve compiling (slow), if we can install a package that's better.
@shouze do you have any idea?
The text was updated successfully, but these errors were encountered: