-
Notifications
You must be signed in to change notification settings - Fork 385
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
HTTP2 issues with curl download in oscap_acquire #2193
Comments
running curl --output abc.xml.bz2 https://www.debian.org/security/oval/oval-definitions-bookworm.xml.bz2 -v on the docker image works, not sure what is the issue with openscap calling the curl |
Okay, so it seems we still have a problem: #2137 |
Can you please do |
Also, you can use env. vars for future debugging: https://curl.se/libcurl/c/libcurl-env.html. |
I will try to run verbose logs, in the meantime the seems to be the issue, in curl curl/curl#10634 and according to the release notes it is fixed in version 8.0.0 and newer |
ok @evgenyz i executed
inside alpine 3.20 docker image - as before version 1.3.10 of openscap
|
Thanks! Yeah, it does look like the previous issue and the problem mentioned in cURL repo. I'll close this bug. |
@evgenyz - can you please advice how to build this with correct version of libcurl or how to increase the version ? |
OpenSCAP is dynamically linked to whatever is the lib- and -devel package in the system. And this particular problem has very specific conditions (which is the case for OpenSCAP, unfortunately). You can try to get newer version of curl into your Alpine and then rebuild openscap package. Not sure how to do that for Alpine, tho. |
You might get away with just the lib upgrade, but that's a stretch. |
Seems that openscap might confuse the server with incorrect headers |
To quote from https://www.rfc-editor.org/rfc/rfc9113.html#name-connection-specific-header- headers like 'TE' are not allowed in HTTP/2 and lead to a stream reset. Apache is correct in its behaviour. The question is now: is the libcurl application wrong in adding the header or should curl, when selecting HTTP/2, automatically strip the header from the request. |
For the record, this (curl/curl#15943) should fix the problem on the curl side. But we might want to reconsider TE header anyways. |
@Jiri-Stary Thanks for getting to the bottom of it! |
also reported in https://issues.redhat.com/browse/RHEL-40997 |
Description of Problem:
Fails to download files via curl if http2 is used. Consider providing way to disable HTTP2 - it was not working with latest version of curl, atleast on alpine linux
OpenSCAP Error: Download failed: Stream error in the HTTP/2 framing layer [/home/buildozer/aports/community/openscap/src/openscap-1.3.10/src/common/oscap_acquire.c:405]
OpenSCAP Version:
Operating System & Version:
Alpine 3.20 docker image
openscap 1.3.10
Steps to Reproduce:
oscap-docker image debian:12 xccdf eval --fetch-remote-resources --profile xccdf_org.ssgproject.content_profile_cis_level2_server --results /report/ssg-results.xml --report /report/ssg-results.html /ssg/scap-security-guide-0.1.75/ssg-debian12-ds.xml;
Actual Results:
Expected Results:
There is no way to force HTTP1.1 - i tried using .curlrc file but it did not help
Additional Information / Debugging Steps:
To quote from https://www.rfc-editor.org/rfc/rfc9113.html#name-connection-specific-header- headers like 'TE' are not allowed in HTTP/2 and lead to a stream reset. Apache is correct in its behaviour.
The question is now: is the libcurl application wrong in adding the header or should curl, when selecting HTTP/2, automatically strip the header from the request.
The text was updated successfully, but these errors were encountered: