Skip to content

fix(ci): fix vLLM emulator entrypoint and CPU runner arg in monitorin… - #107

Open
sbates130272 wants to merge 4 commits into
mainfrom
bug/more-ci-fixes
Open

fix(ci): fix vLLM emulator entrypoint and CPU runner arg in monitorin…#107
sbates130272 wants to merge 4 commits into
mainfrom
bug/more-ci-fixes

Conversation

@sbates130272

Copy link
Copy Markdown
Collaborator

…g smoke

Two fixes for the CPU monitoring smoke test:

  1. Add --entrypoint python3 to the vLLM emulator docker run in spur-monitoring-cpu-smoke.sh. The rocm-aic image ENTRYPOINT is python3 -m vllm.entrypoints.openai.api_server; without overriding it the command argument is appended rather than replacing it, so vLLM's API server runs instead of our emulator script and crashes on CPU-only nodes with "Failed to infer device type".

  2. Fix the LLM fallback in vllm_emulator_server.py: the installed vLLM build (0.25.0 AMD fork) uses runner="cpu" not device="cpu" in EngineArgs/LLM.init. The old kwarg raised TypeError and aborted the emulator before it could serve any requests.

…g smoke

Two fixes for the CPU monitoring smoke test:

1. Add `--entrypoint python3` to the vLLM emulator `docker run` in
   spur-monitoring-cpu-smoke.sh.  The rocm-aic image ENTRYPOINT is
   `python3 -m vllm.entrypoints.openai.api_server`; without overriding
   it the command argument is appended rather than replacing it, so
   vLLM's API server runs instead of our emulator script and crashes on
   CPU-only nodes with "Failed to infer device type".

2. Fix the LLM fallback in vllm_emulator_server.py: the installed vLLM
   build (0.25.0 AMD fork) uses `runner="cpu"` not `device="cpu"` in
   EngineArgs/LLM.__init__.  The old kwarg raised TypeError and aborted
   the emulator before it could serve any requests.

Co-Authored-By: Claude <noreply@anthropic.com>
@sbates130272 sbates130272 self-assigned this Jul 28, 2026
@sbates130272 sbates130272 added the bug Something isn't working label Jul 28, 2026
@sbates130272
sbates130272 requested a review from gaoikawa as a code owner July 28, 2026 21:58
sbates130272 and others added 3 commits July 28, 2026 17:11
The `find` glob matched exporter tarballs (aic-nvme-exporter-*.tar.zst,
aic-rdma-exporter-*.tar.zst) before the main image tarball, causing
`docker load` to load the wrong image and the subsequent `docker run`
for the vLLM emulator to fail with "image not found".

Prefix the glob with the sanitized AIC_IMAGE name (same convention
run-build-distribute.sh uses: '/:' -> '--') so only the main image
tarball is matched.

Co-Authored-By: Claude <noreply@anthropic.com>
…odes

The rocm-aic image is a GPU-only vLLM build; platform detection requires
a physical GPU and cannot be overridden via env vars.  Both LLMEmulator
and LLM(runner="cpu") fail at engine config creation with "Device string
must not be empty".

Replace the vLLM LLM fallback with a pure-Python stub that returns canned
completions when LLMEmulator is unavailable.  The stub emits the same
Prometheus metrics and returns non-empty text for every prompt, so the
CPU smoke test health checks pass without requiring GPU hardware.

Co-Authored-By: Claude <noreply@anthropic.com>
Compute nodes can have a full /tmp (tmpfs or small local disk), causing
`mkdir /tmp/aic-prom-tsdb-*` to fail with ENOSPC.  Move METRICS_DIR
under METRICS_PAGE_DIR which is already on shared NFS, so disk space is
not a concern and the existing EXIT trap cleanup covers it automatically.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant