frank-primary vllm: orphan-container self-heal + HOME + stop/rm order
Unit restart SIGKILLs conmon before --rm cleanup runs, leaving the container name registered: every restart then dies on name-in-use while the orphan holds the port and GPUs (observed live 2026-09-27, NRestarts=6 with the container Up and the unit auto-restarting). The serve script now clears its own name before exec podman run; the deployer stops the unit and removes the container BEFORE waiting on the port. HOME inside the container pointed at the root-owned WORKDIR /app, so vLLM's registry cache write hit PermissionError; HOME now points at the cache volume. The vLLM cutover itself is blocked on a structural wall (AMD Qwen4Exp impl creates the 51.2B PLE table as a bf16 on-GPU param: 47.69 GiB transient on a 31.86 GiB card; the pinned-host UVA path that fits this hardware is CUDA-gated). llama.cpp is restored live at :7770; host HEAD unchanged.
This commit is contained in:
1 parent
ecaad36654
commit
baba84fc90
2 files changed
+13
-7
No files matched your search
@@ -1223,11 +1223,11 @@ PY
|
|||||||
# A stale container with the same name makes `podman run --name` fail at
|
# A stale container with the same name makes `podman run --name` fail at
|
||||||
# start; remove any leftover from a failed previous attempt.
|
# start; remove any leftover from a failed previous attempt.
|
||||||
podman rm -f "$LLM_PRIMARY_CONTAINER" >/dev/null 2>&1 || true
|
podman rm -f "$LLM_PRIMARY_CONTAINER" >/dev/null 2>&1 || true
|
||||||
# On a re-deploy the predecessor is THIS unit (the llama.cpp unit until
|
# A stopped unit can leave its container running: systemd's cgroup kill
|
||||||
# the 2026-09-27 cutover, the vLLM unit after it): stop it before
|
# races conmon's --rm cleanup, and the orphan holds the port and GPUs.
|
||||||
# waiting on the port, or the wait deadlocks on the server it just
|
# Stop the unit, then remove the container BEFORE waiting on the port.
|
||||||
# stopped serving.
|
|
||||||
run_privileged systemctl stop frank-primary.service 2>/dev/null || true
|
run_privileged systemctl stop frank-primary.service 2>/dev/null || true
|
||||||
|
podman rm -f "$LLM_PRIMARY_CONTAINER" >/dev/null 2>&1 || true
|
||||||
# Nothing starts until the port is released: the lucebox cutover
|
# Nothing starts until the port is released: the lucebox cutover
|
||||||
# (2026-09-26) and the frank-large cutover (2026-09-16) both failed
|
# (2026-09-26) and the frank-large cutover (2026-09-16) both failed
|
||||||
# exactly here when the next engine bound 7770 a second too early.
|
# exactly here when the next engine bound 7770 a second too early.
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ fi
|
|||||||
|
|
||||||
mkdir -p /home/dank/.cache/frank-primary-vllm
|
mkdir -p /home/dank/.cache/frank-primary-vllm
|
||||||
|
|
||||||
SERVE_ARGS=(serve "$MODEL_DIR"
|
SERVE_ARGS=("$MODEL_DIR"
|
||||||
--served-model-name "$SERVED_NAME"
|
--served-model-name "$SERVED_NAME"
|
||||||
--host "$BIND_HOST"
|
--host "$BIND_HOST"
|
||||||
--port "$PORT"
|
--port "$PORT"
|
||||||
@@ -99,6 +99,10 @@ SERVE_ARGS=(serve "$MODEL_DIR"
|
|||||||
if [ -n "${SPEC_CONFIG:-}" ]; then
|
if [ -n "${SPEC_CONFIG:-}" ]; then
|
||||||
SERVE_ARGS+=(--speculative-config "$SPEC_CONFIG")
|
SERVE_ARGS+=(--speculative-config "$SPEC_CONFIG")
|
||||||
fi
|
fi
|
||||||
|
# A crashed/killed unit leaves the container name registered (systemd can
|
||||||
|
# SIGKILL conmon before the --rm cleanup runs); podman run would then die
|
||||||
|
# on name-in-use forever. Clear any orphan of OUR name first — idempotent.
|
||||||
|
podman rm -f "$CONTAINER_NAME" >/dev/null 2>&1 || true
|
||||||
|
|
||||||
exec podman run --rm \
|
exec podman run --rm \
|
||||||
--name "$CONTAINER_NAME" \
|
--name "$CONTAINER_NAME" \
|
||||||
@@ -113,11 +117,13 @@ exec podman run --rm \
|
|||||||
-e ROCR_VISIBLE_DEVICES="$ROCR_VISIBLE_DEVICES" \
|
-e ROCR_VISIBLE_DEVICES="$ROCR_VISIBLE_DEVICES" \
|
||||||
-e HIP_VISIBLE_DEVICES="$HIP_VISIBLE_DEVICES" \
|
-e HIP_VISIBLE_DEVICES="$HIP_VISIBLE_DEVICES" \
|
||||||
-e VLLM_ROCM_USE_AITER="$VLLM_ROCM_USE_AITER" \
|
-e VLLM_ROCM_USE_AITER="$VLLM_ROCM_USE_AITER" \
|
||||||
|
-e NCCL_P2P_DISABLE="$NCCL_P2P_DISABLE" \
|
||||||
-e TRITON_CACHE_DIR="$CACHE_ROOT/triton" \
|
-e TRITON_CACHE_DIR="$CACHE_ROOT/triton" \
|
||||||
-e TORCHINDUCTOR_CACHE_DIR="$CACHE_ROOT/inductor" \
|
-e TORCHINDUCTOR_CACHE_DIR="$CACHE_ROOT/inductor" \
|
||||||
-e VLLM_CACHE_DIR="$CACHE_ROOT/vllm" \
|
-e HOME="$CACHE_ROOT" \
|
||||||
-e TRITON_ALLOW_NON_CONST_GLOBALS=1 \
|
-e TRITON_ALLOW_NON_CONST_GLOBALS=1 \
|
||||||
--volume /home/dank/models:/models \
|
--volume /home/dank/models:/models \
|
||||||
--volume /home/dank/.cache/frank-primary-vllm:"$CACHE_ROOT" \
|
--volume /home/dank/.cache/frank-primary-vllm:"$CACHE_ROOT" \
|
||||||
"$IMAGE" \
|
"$IMAGE" \
|
||||||
vllm "${SERVE_ARGS[@]}"
|
"${SERVE_ARGS[@]}"
|
||||||
|
|
||||||
Reference in new issue
Block a user