Skip to content

Decode pod readiness probe uses wrong port causing CrashLoopBackOff #1435

Description

@vknaik

Component

Setup/Standup

Describe the bug

Decode pods fail readiness checks because the readiness probe checks port 8000, but the vLLM server listens on port 8200.

Environment:

  • Cluster: OpenShift (pokprod001)
  • Scenario: pd-disaggregation
  • Model: Qwen/Qwen3-32B
  • llm-d-benchmark version: v0.6.7-13-gaa7a64a

Steps to reproduce

  1. Run: llmdbenchmark --spec pd-disaggregation standup
  2. Observe decode pod status: oc get pods -n namespace | grep decode
  3. Pod shows: 0/2 Running with multiple restarts
  4. Check logs: decode pod crashes because readiness probe fails

Additional context or screenshots

Root Cause

File: config/templates/jinja/13_ms-values.yaml.j2, line 222

Current code:
{% set decode_effective_port = decode.vllm.servicePort -%}
This sets readiness probe to port 8000 (servicePort), but decode vLLM actually runs on port 8200 (vllm.port via VLLM_METRICS_PORT).

Expected Behavior

  • Decode pod: vLLM listens on 8200 → readiness probe checks 8200
  • Prefill pod: vLLM listens on 8000 → readiness probe checks 8000 (works correctly)

Suggested Fix

Change line 222 from:
set decode_effective_port = decode.vllm.servicePort

to:
set decode_effective_port = decode.vllm.port

Workaround

After standup completes, manually patch the deployment:

oc patch deployment -n namespace decode-deployment --type=json -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/readinessProbe/httpGet/port", "value": 8200}]'

Impact

  • Severity: High
  • Affects all pd-disaggregation deployments
  • Blocks deployment completion without manual intervention

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions