fix: split HTTP connect/read timeouts (Jellyfin build + qBit stats)
Every HTTP client passed an integer timeout to requests, applying the same value to BOTH connect and read phases. A slow Jellyfin /Items page or qBit /sync/maindata blew through the 10s read budget → ReadTimeoutError. Split into a (connect=5s, read=60s default) tuple via shared http_timeout() helper. The media index build worker uses a 180s read floor. Existing services with low timeout_seconds benefit from bumping to 60+.
This commit is contained in:
@@ -4,6 +4,19 @@ All notable changes to Manage. Breaking changes are marked with **BREAKING**.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed — HTTP read timeouts
|
||||
|
||||
- Service HTTP clients now use a `(connect, read)` timeout tuple (connect 5s,
|
||||
read 60s default) instead of a single integer, resolving `ReadTimeoutError`
|
||||
on slow Jellyfin index builds and qBittorrent stats. The media index build
|
||||
worker uses a 180s read floor so slow `/Items` pages on large libraries
|
||||
don't time out mid-build.
|
||||
- The shared `http_timeout()` helper (`clients/http_timeout.py`) decouples
|
||||
connect (fail-fast on dead hosts) from read (generous for slow responses).
|
||||
- Integration `timeout_seconds` defaults were raised from 5/10s to 15/60s.
|
||||
- Existing services with a low `timeout_seconds` may benefit from bumping it
|
||||
to 60+ via the service editor.
|
||||
|
||||
### **BREAKING** — Prometheus queries now route through Grafana gateway
|
||||
|
||||
- The `prometheus` service config changed: `base_url` is replaced by
|
||||
|
||||
Reference in New Issue
Block a user