Skip to content

Retry transient inference proxy unavailability - #1994

Open
kalectory wants to merge 3 commits into
NovaSky-AI:mainfrom
kalectory:neil/retry-transient-inference-proxy
Open

Retry transient inference proxy unavailability#1994
kalectory wants to merge 3 commits into
NovaSky-AI:mainfrom
kalectory:neil/retry-transient-inference-proxy

Conversation

@kalectory

Copy link
Copy Markdown
  • Retry a missing or stale vLLM proxy until the engine republishes its URL instead of failing the sample immediately.
  • Keep genuine vLLM response errors non-retryable and cover both paths with focused tests.

Testing

uv run --extra dev --extra tinker pytest tests/tinker/skyrl_train/test_inference_forwarding_retry.py
uv run --extra dev pre-commit run --files skyrl/tinker/extra/skyrl_train_inference_forwarding.py tests/tinker/skyrl_train/test_inference_forwarding_retry.py

Verified 3 retry tests pass and all configured hooks pass.

A transient router<->worker breakdown surfaces as httpx.RequestError (stale/dead
cached proxy URL) or RuntimeError('...no proxy URL published...') (router dropped its
worker, not yet republished). The engine/worker stays alive across these, so
_forward_with_retry now poll-retries with a re-read proxy URL (SKYRL_PROXY_RETRY_TIMEOUT_SEC
default 900s, backoff 5s) instead of failing the whole run on the first blip. Genuine
vLLM 4xx/5xx still surface. Fixes 27B PiSSA drivers dying on a recoverable router blip.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a retry loop with configurable backoff and timeout in _forward_with_retry to handle transient vLLM proxy and network errors, along with corresponding unit tests. The review feedback suggests optimizing the retry mechanism to prevent a database read storm when multiple concurrent requests attempt to force-refresh a stale proxy URL simultaneously.

Comment thread skyrl/tinker/extra/skyrl_train_inference_forwarding.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant