mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-06-26 12:51:16 -03:00
fix(aria2): disable fsync and relax RPC timeouts to prevent aria2 freeze on large files
aria2 default --fsync=true calls fsync() after each write, which blocks the entire single-threaded process on large files under Docker overlay. Add --fsync=false to eliminate this blocking source. Relax aiohttp session timeout: total=30 → sock_connect=10, sock_read=60 so that transient I/O delays don't cut off legitimate tellStatus RPCs. Increase retry params (4 attempts, 3s delay) to give aria2 more recovery time when blocked on synchronous I/O.
This commit is contained in:
@@ -138,7 +138,7 @@ class Aria2Downloader:
|
||||
self._transfers.pop(download_id, None)
|
||||
|
||||
async def _get_status_with_retry(
|
||||
self, download_id: str, *, max_retries: int = 3, retry_delay: float = 1.0
|
||||
self, download_id: str, *, max_retries: int = 4, retry_delay: float = 3.0
|
||||
) -> Optional[Dict[str, Any]]:
|
||||
"""Call get_status with retry for transient RPC failures.
|
||||
|
||||
@@ -510,6 +510,7 @@ class Aria2Downloader:
|
||||
"--continue=true",
|
||||
"--daemon=false",
|
||||
"--quiet=true",
|
||||
"--fsync=false",
|
||||
f"--stop-with-process={os.getpid()}",
|
||||
]
|
||||
|
||||
@@ -649,7 +650,9 @@ class Aria2Downloader:
|
||||
if self._rpc_session is None or self._rpc_session.closed:
|
||||
async with self._rpc_session_lock:
|
||||
if self._rpc_session is None or self._rpc_session.closed:
|
||||
timeout = aiohttp.ClientTimeout(total=30)
|
||||
timeout = aiohttp.ClientTimeout(
|
||||
total=None, sock_connect=10, sock_read=60
|
||||
)
|
||||
self._rpc_session = aiohttp.ClientSession(timeout=timeout)
|
||||
return self._rpc_session
|
||||
|
||||
|
||||
Reference in New Issue
Block a user