fix(llm): timeout esplicito 60s sul client OpenAI (no più hang infinito)
Run phase2-6-flat-wfa-001 è andato in hang per 4h+ a gen 3/10 su una chiamata OpenRouter (process stuck in do_poll syscall, 0% CPU). Il SDK OpenAI ha default timeout 600s ma evidentemente il TLS/socket handshake può bloccarsi senza interrompere; senza timeout esplicito i retry tenacity non scattano mai e il run resta pending. Fix: OpenAI(timeout=60.0). Se una chiamata supera 60s, raise APITimeoutError (già in _RETRYABLE_EXCEPTIONS) e tenacity ritenta fino a 5 volte con backoff esponenziale fino a 30s. Worst case totale: ~5×60s = 5min per call (vs 4h+ hang precedente). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -79,7 +79,13 @@ class LLMClient:
|
||||
ModelTier.C: model_tier_c,
|
||||
ModelTier.D: model_tier_d,
|
||||
}
|
||||
self._client = OpenAI(api_key=openrouter_api_key, base_url=openrouter_base_url)
|
||||
# Timeout esplicito (60s) per prevenire hang infinito su connessioni
|
||||
# stallate. Tenacity retry su APITimeoutError gestisce il recovery.
|
||||
self._client = OpenAI(
|
||||
api_key=openrouter_api_key,
|
||||
base_url=openrouter_base_url,
|
||||
timeout=60.0,
|
||||
)
|
||||
|
||||
@retry(
|
||||
stop=stop_after_attempt(5),
|
||||
|
||||
Reference in New Issue
Block a user