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
http/3: CURL does not send connection close message #8534
Comments
@tatsuhiro-t is there any obvious function call missing here? Lines 859 to 886 in 64db5c5
|
yes, ngtcp2_conn_write_connection_close needs to be called there and send the packet with send(2). |
I tried to send CONNECTION_CLOSE in that function, but the socket has already been closed (conn->tempsock[0]). |
@bagder ..? |
No, as it hasn't been necessary before. It feels like the |
Fixes #8534 Reported-by: mehatzri on github
thank you!! |
I did this
I sent an HTTP3 request with CURL (NGTCP2 version) to my http3 server by:
curl -k --http3 https://1.1.1.1:443
I expected the following
After curl received the file, i expect it to send a CONNECTION_CLOSE message.
However no CONNECTION_CLOSE is sent.
Further health-check packets from server gets "ICMP port unreachable" response.
This suggests that the client disconnected and close the connection,
but without sending close message, as it should.
curl/libcurl version
This happens only on latest curl based on NGTCP2.
issue is NOT seen with QUICHE version.
[curl -V output]
curl 7.82.0-DEV (x86_64-pc-linux-gnu) libcurl/7.82.0-DEV OpenSSL/3.0.0 zlib/1.2.11 ngtcp2/0.3.0-DEV nghttp3/0.3.0-DEV
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTP3 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
This looks like a bug in CURL code, in the inegration code with NGTCP2.
Comparing files under curl/lib/vquic
we can see that qs_disconnect function is implemented differently for ngtcp2.c and quiche.c
as the quiche.c implementation calls conn_close while ngtcp.c does not.
operating system
Ubuntu
Linux 23 5.13.0-30-generic #33~20.04.1-Ubuntu SMP Mon Feb 7 14:25:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
The text was updated successfully, but these errors were encountered: