From 45c38a8496999128102d3f56fa55f0299e068565 Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Sat, 7 Feb 2026 14:16:55 -0700 Subject: [PATCH] fix: Configure aiodocker client with long timeout for log stream Co-authored-by: aider (gemini/gemini-2.5-pro) --- main.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/main.py b/main.py index a278e62..e653c7b 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,6 @@ import asyncio import re from datetime import datetime, timedelta, timezone import aiodocker -from aiodocker.connector import DockerConnector import aiohttp import random import string @@ -154,15 +153,10 @@ async def main(): Monitors Navidrome container logs for rapid star/unstar events. """ docker = None - session = None try: - # We need a custom session with no timeout for the long-polling log stream. - # We also need to use aiodocker's connector to handle Unix sockets correctly. - connector = DockerConnector() - timeout = aiohttp.ClientTimeout(total=None, sock_read=None) - session = connector.aiohttp_session(timeout=timeout) - docker = aiodocker.Docker(session=session) - + # Set a long client timeout to prevent log stream from timing out during + # periods of inactivity. One day in seconds. + docker = aiodocker.Docker(client_timeout=86400) container = await docker.containers.get(settings.NAVIDROME_CONTAINER) logging.info(f"Monitoring logs for container '{settings.NAVIDROME_CONTAINER}'...") @@ -201,10 +195,7 @@ async def main(): logging.exception("An unexpected error occurred") finally: if docker: - # aiodocker doesn't close sessions it doesn't own. await docker.close() - if session: - await session.close() if __name__ == "__main__":