Skip to content

HTTP/3 with OpenSSL back end leaves connections hanging on IPv6 #14022

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

Closed
Fullmetal5 opened this issue Jun 26, 2024 · 2 comments
Closed

HTTP/3 with OpenSSL back end leaves connections hanging on IPv6 #14022

Fullmetal5 opened this issue Jun 26, 2024 · 2 comments
Assignees
Labels
HTTP/3 h3 or quic related

Comments

@Fullmetal5
Copy link
Contributor

Fullmetal5 commented Jun 26, 2024

I did this

Attempting to use curl with HTTP/3 using the OpenSSL back end and using IPv6 I noticed in Wireshark that libcurl/openssl just stop replying to packets as soon as the server sends its reply and the application attempts to exit. This leaves the server re-transmitting the reply having never gotten an ACK yet alone a CC. I'm not sure if this is a libcurl bug or a OpenSSL bug as I haven't tested yet using different back ends.

Example command to run with Wireshark running:
SSLKEYLOGFILE=/tmp/keys.txt curl -6 -I --header 'if-modified-since: Wed, 26 Jun 2024 05:21:08 GMT' 'https://example.com/' -o /dev/null -s --http3-only

Loading the keys.txt and taking a look I can see in my capture that the server response with '304 Not Modified' repeatedly but curl never sends an ACK or CC leaving the server to just re-transmit till it too hangs up.

I expected the following

For there to at least be an attempt at a graceful connection shutdown rather than leaving the server hanging.

curl/libcurl version

Testing on curl 8.8.0 (Arch Linux packaged) and master (c1845dc).
Also tested with icing's "graceful connection shutdown" patch applied since the name seemed relevant to the issue but no change.

operating system

Linux 6.9.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 21 Jun 2024 19:49:19 +0000 x86_64 GNU/Linux

@bagder bagder added the HTTP/3 h3 or quic related label Jun 26, 2024
@icing
Copy link
Contributor

icing commented Jun 26, 2024

Thanks for the report. Where our OpenSSL QUIC shutdown was supposed to go, there was a TODO there instead.

I added support in #14027. Hope that works for you as well.

@icing icing self-assigned this Jun 26, 2024
@Fullmetal5
Copy link
Contributor Author

Yup, that has indeed fixed the issue, thank you for your hard work on the QUIC and HTTP/3 support.

@bagder bagder closed this as completed in bb09a30 Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HTTP/3 h3 or quic related
Development

No branches or pull requests

3 participants