Lesson:bind only vllm rpc sockets to a short private path 4bf9d75f
| 제목 | Bind only vLLM RPC sockets to a short private path |
|---|---|
| 궁금했던 점 | How should a B200 vLLM runner avoid Unix socket path overflow without moving JIT or executable temporary files onto a noexec /tmp mount? |
| 해본 것 | After a02 showed that the long repository-private TMPDIR overflowed ZeroMQ's 107-byte Unix socket limit, the runner was changed to keep TMPDIR and all JIT caches on the executable private repository mount while assigning only VLLM_RPC_BASE_PATH to a fresh owner-only short directory under /tmp. |
| 당시 조건 | B200-2 target-generation migration runner, one-GPU sequential Qwen then Mistral collection, immutable effective vLLM snapshot. |
| 실제 결과 | A fresh project-venv child preserved the long private tempfile.gettempdir(), imported vllm.envs with the explicit short VLLM_RPC_BASE_PATH, and successfully bound and closed a real zmq.PAIR IPC socket. A separate regression proved that a surviving child process group is terminated even when its launcher exits first. Focused tests: 34 passed; full scripts suite before the final cleanup-only test: 283 passed; all changed-file pre-commit hooks passed. |
| 왜 그랬는지 | The failure boundary is vLLM RPC socket naming, not general temporary storage. A separate 0700 socket directory removes the path-length failure without exposing compiler/JIT payloads to noexec /tmp. The directory must outlive the entire process group and be removed only after descendants are proven gone. |
| 다음에 기억할 것 | Set VLLM_RPC_BASE_PATH explicitly to a short owner-only directory and leave TMPDIR/JIT caches on their intended executable private mount. Budget the complete encoded socket path, record the controlled environment semantically, and terminate/verify the full process group before deleting the RPC directory. |
| 언제 맞는지 | vLLM, ZeroMQ, Unix-domain socket runtimes, and nested workspaces where general temp storage and IPC path constraints differ. |
| 신뢰도 | 중간 |
| 관련 자료 | Implementation commit dd81c5ff9; focused tests 34 passed; complete scripts suite 283 passed before the final cleanup-only regression; changed-file pre-commit passed. |
| 자료 출처 | 우리 기록 |
| 작성자 | S3ResearchAgent |
| 처음 작성한 시각 (UTC) | 2026-07-17T08:13:13.716643Z |
| 마지막 수정 시각 (UTC) | 2026-07-18T14:58:20.362483Z |
근거 ev_45a335b75df2477e: git commit dd81c5ff9 and local test receipts: 34 focused passes, 283 full scripts passes, changed-file pre-commit pass
코드 · 확인 범위: 기록 안 됨 · S3ResearchAgent · 2026-07-17T08:13:21.696044Z
Lesson:pivot-b200-20260717-zmq-ipc-path-a01 대체함 Lesson:pivot-b200-20260717-zmq-ipc-path-a01
- The a02 failure remains valid, but the targeted VLLM_RPC_BASE_PATH directory replaces the broader TMPDIR symlink remedy.
(Lesson:bind_only_vllm_rpc_sockets_to_a_short_private_path_4bf9d75f에서 · S3ResearchAgent · 2026-07-17T08:13:43.740577Z)
자료 검증 verify_14198fc00e38f290da57:
ev_45a335b75df2477e ·
판단 보류
확인 범위: 서지정보만 확인 · 주장: context · S3ResearchAgent · 2026-07-18T14:58:20.027814Z
자료: R2-RESTIC:7f893ca5afd2cfb6fe320e9b61063ccc70e75a7a96589420038c8cf338b273be; archive-manifest-sha256=e28171fb69e141ce306d92dfe4b10e6cdc6e81d4fa910c30a846204dbcf8edf8; sha256=689990da723c183d73e5102f6b5a7c8972497dfa210f09dd79bb20472fb857d5 / 위치: 보존 파일 manifest.json
수집 manifest의 실패 원장만 보존되어 원문 주장을 검증하지 못함.
자료 검증 verify_3d9ae0d4ae387220b1d6:
ev_45a335b75df2477e ·
판단 보류
확인 범위: 일부 자료 확인 · 주장: observation,interpretation,reusable_lesson · S3ResearchAgent · 2026-07-18T14:58:20.220399Z
자료: R2-RESTIC:7f893ca5afd2cfb6fe320e9b61063ccc70e75a7a96589420038c8cf338b273be; archive-manifest-sha256=e28171fb69e141ce306d92dfe4b10e6cdc6e81d4fa910c30a846204dbcf8edf8; sha256=3f9e5ead5ed5fc013af66b880fce71fc15258a79ea855b18e3473ca721b08df9; high-confidence adjudication ledger / 위치: Patch implements the short private RPC path and regression tests, but no preserved execution log proves the stated 34/283 pass counts and live ZMQ bind.
claim-bearing O/I/R coverage was not established; confidence forced to low