mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-15 22:05:19 +00:00
fix: prevent memory leaks in file handling and HTTP connections
- Fix file handle memory leak in download_file_stream by properly closing and reopening files - Add requests.Session context manager for proper HTTP connection cleanup - Remove unnecessary file.seek(0) after file reopening - Add timeout to prevent hanging connections This prevents memory accumulation during large file downloads and ensures proper resource cleanup in all scenarios. Signed-off-by: Sihyeon Jang <sihyeon.jang@navercorp.com>
This commit is contained in:
parent
dbd7b90123
commit
7042318c34
1 changed files with 18 additions and 16 deletions
|
|
@ -1694,13 +1694,15 @@ async def download_file_stream(
|
||||||
yield f'data: {{"progress": {progress}, "completed": {current_size}, "total": {total_size}}}\n\n'
|
yield f'data: {{"progress": {progress}, "completed": {current_size}, "total": {total_size}}}\n\n'
|
||||||
|
|
||||||
if done:
|
if done:
|
||||||
file.seek(0)
|
file.close()
|
||||||
|
|
||||||
|
with open(file_path, "rb") as file:
|
||||||
chunk_size = 1024 * 1024 * 2
|
chunk_size = 1024 * 1024 * 2
|
||||||
hashed = calculate_sha256(file, chunk_size)
|
hashed = calculate_sha256(file, chunk_size)
|
||||||
file.seek(0)
|
|
||||||
|
|
||||||
url = f"{ollama_url}/api/blobs/sha256:{hashed}"
|
url = f"{ollama_url}/api/blobs/sha256:{hashed}"
|
||||||
response = requests.post(url, data=file)
|
with requests.Session() as session:
|
||||||
|
response = session.post(url, data=file, timeout=30)
|
||||||
|
|
||||||
if response.ok:
|
if response.ok:
|
||||||
res = {
|
res = {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue