🌐 AI搜索 & 代理 主页
Skip to content

[HttpClient] Memory leak somewhere inbetween v6.4.5 and v6.4.24 #62633

@jwage

Description

@jwage

Symfony version(s) affected

v6.4.24

Description

Using CurlHttpClient implementation
PHP Version: 8.3.28
ext-curl version: ext-curl version bundled with php
system curl version:

curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7
Release-Date: 2023-12-06, security patched: 8.5.0-2ubuntu10.6
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

I realize this is quite a wide range of versions and I am still working on narrowing it down, but I am going ahead and creating the issue to see if anyone else has any ideas.

I originally upgraded symfony/http-client from v6.4.5 to v6.4.28 and saw memory increasing much more than normal. I deployed the change on Saturday morning, but we didn't notice the problem getting worse until later on Sunday at 6pm eastern time when traffic started to increase. Traffic is really low over the weekend.

Image

I reverted back to v6.4.5 and memory went back to normal.

I initially suspected the problem was in v6.4.25 so I deployed an upgrade to v6.4.24, but unfortunately the problem still exists in v6.4.24 so I reverted the change.

The issue is somewhere in this diff https://github.com/symfony/http-client/compare/v6.4.5..v6.4.24

I am going to spend some time today to try and narrow it down further. If anyone has any ideas of which version in the above diff looks suspicious, I am all ears.

Notes for Myself

Staging curl:

curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7
Release-Date: 2023-12-06, security patched: 8.5.0-2ubuntu10.6
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

Production curl:

curl 8.5.0 (x86_64-pc-linux-gnu) libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7
Release-Date: 2023-12-06, security patched: 8.5.0-2ubuntu10.6
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

How to reproduce

I am not able to reproduce the problem locally. In production we have thousands of customers making thousands of API calls to different API endpoints every minute and I am not able to replicate that kind of load locally.

Possible Solution

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions