| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Sorry, something went wrong.
…d growth Fixes googleapis#2369. When using generate_content(stream=False), the SDK extracts the text from the response and wraps it in a list inside HttpResponse. However, the underlying httpx.Response or aiohttp.ClientResponse can be kept alive by exceptions or internal async event loop state. For responses containing large strings (e.g. base64 images), this causes a significant memory leak. This change ensures that once the text is read, we explicitly close the connection and clear large string buffers from the response objects.
| Back | FazBrowse Home | New Git URL |
Description
When running multiple async generation requests, the google-genai SDK leaks memory. The underlying httpx or aiohttp response objects accumulate in memory because they are not explicitly closed after the text is read. This causes unbounded memory growth over time.
Fix implemented
I modified google/genai/_api_client.py to eagerly release network resources. For non streaming responses, as soon as response.text() is read, the patch explicitly calls close() or release() on the response object and clears out the internal _content buffers.
Steps to Reproduce
Run a loop doing await client.aio.models.generate_content(...). Check tracemalloc. You will see httpx.Response and raw bytes accumulating in memory. After this patch, memory stays flat.