Skip to content

fix(rlix-drivers): forward resize-timeout env knobs to MilesCoordinator - #36

Open
JunzheJoe wants to merge 1 commit into
zhenyu/m11-mvp-testfrom
joe/forward-resize-timeout-envs
Open

fix(rlix-drivers): forward resize-timeout env knobs to MilesCoordinator#36
JunzheJoe wants to merge 1 commit into
zhenyu/m11-mvp-testfrom
joe/forward-resize-timeout-envs

Conversation

@JunzheJoe

Copy link
Copy Markdown
Member

What

Add RLIX_RESIZE_LOCK_TIMEOUT_S and MILES_RESIZE_RPC_TIMEOUT_S to the explicit env-forwarding allowlists in both RLix drivers (run_miles_dual.py, run_miles_rlix.py).

Why

Kynnet's review of rlops/rlix#35 caught that the new resize-timeout knobs are read inside the MilesCoordinator actor process, but weren't on any explicit runtime_env forwarding path — and as the drivers' own comment notes, Ray does not propagate the parent driver's env by default. On a single-node smoke the raylet inherits the driver shell so the override arrives implicitly; on multi-node it silently falls back to the compiled defaults (180s). Same class of gap as the MILES_MIN_FREE_GPU_MEM_GB forwarding issue found on rlops/rlix#21.

Defaults are unaffected — this only makes the knobs actually tunable in the standard deploy path, mirroring how MILES_MAX_RESIDUAL_GPU_MEM_GB is forwarded.

Pairing

The scheduler-side RLIX_RESIZE_RPC_TIMEOUT_S is handled rlix-side (rlops/rlix#35 commit 3c27d4d: rlix.init() merges it from the driver env into the env_vars it already threads to the orchestrator/scheduler actors). Either PR is safe to land alone.

Validation

  • ast.parse clean on both drivers
  • Allowlist-only change; no behavior change when the vars are unset

RLIX_RESIZE_LOCK_TIMEOUT_S and MILES_RESIZE_RPC_TIMEOUT_S are read at
import time inside the MilesCoordinator actor process (rlops/rlix#35).
Ray actors do not inherit the driver shell environment on multi-node
clusters, so a driver-side export silently never reached the actor.
Add both keys to the existing explicit allowlists in run_miles_dual.py
and run_miles_rlix.py, mirroring MILES_MAX_RESIDUAL_GPU_MEM_GB.

The scheduler-side RLIX_RESIZE_RPC_TIMEOUT_S travels via rlix.init()'s
own env forwarding (fixed rlix-side in rlops/rlix#35).
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