Skip to content

100% CPU hang with nghttp3 HTTP/3 and low MTU #20440

@danog

Description

@danog

I did this

When making HTTP/3 requests over interfaces with a low MTU (starting at 1470), curl gets stuck with 100% CPU usage.

It's especially an issue when using VPN connections or tunnels of another kind.

To easily reproduce, set the MTU to any value lower than or equal to 1470, for example:

ip link set mtu 1420 dev enp47s0

Then run:

curl --http3 https://google.com/

I expected the following

No hang

curl/libcurl version

curl 8.18.0 (x86_64-pc-linux-gnu) libcurl/8.18.0 OpenSSL/3.6.0 zlib/1.3.1.zlib-ng brotli/1.2.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 ngtcp2/1.20.0 nghttp3/1.15.0 librtmp/2.3 mit-krb5/1.21.3
Release-Date: 2026-01-07
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

operating system

Arch linux, Linux arch-lenovo 6.18.7-1-cachyos #1 SMP PREEMPT_DYNAMIC Fri, 23 Jan 2026 23:19:52 +0000 x86_64 GNU/Linux

Metadata

Metadata

Assignees

Labels

HTTP/3h3 or quic related

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions