mirror of
https://github.com/sredevopsorg/deepseek-kubernetes-sandbox.git
synced 2026-11-03 01:13:24 +00:00
Do not read-time-out proxied upstream streams (#9)
Every proxied response is streamed through _relay using one shared httpx.AsyncClient configured with timeout=HTTP_TIMEOUT (300s). An idle SSE or long-poll stream therefore raised httpx.ReadTimeout every five minutes, which escaped the StreamingResponse as a full traceback and truncated the browser's stream. Build proxied requests with a timeout that leaves read unbounded (connect, write and pool stay bounded), and end the relay quietly on httpx.HTTPError instead of propagating it. The relay is cancelled when the browser disconnects and _relay closes the upstream response, so an unbounded read cannot outlive the client. Docs: note the split in the HTTP_TIMEOUT row. Co-authored-by: SREDevOpsAgents <agents@sredevops.org>
This commit is contained in:
committed by
GitHub
parent
687640621e
commit
163abaeac0
@@ -121,7 +121,7 @@ can also be injected into `create_app` for tests.
|
||||
| `COOKIE_SECURE` | `false` | Add `Secure` to the session cookie when served over TLS. |
|
||||
| `COOKIE_MAX_AGE` | `604800` | Session cookie lifetime in seconds. |
|
||||
| `MAX_BODY_MB` | `32` | Maximum buffered request body (and `413` threshold). |
|
||||
| `HTTP_TIMEOUT` | `300` | Upstream connect/read timeout in seconds. |
|
||||
| `HTTP_TIMEOUT` | `300` | Upstream connect/read timeout in seconds. Proxied streams (SSE, long responses) keep the connect/write budget but have **no read timeout**, so an idle event stream is not cut every five minutes. |
|
||||
| `SWEEP_INTERVAL` | `15` | Seconds between idle sweeps. |
|
||||
|
||||
### Required RBAC
|
||||
|
||||
Reference in New Issue
Block a user