AgentX warmup aborts the whole run when a request hits a keep-alive connection the server just closed
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 47/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- backend, performance
Línea de trabajo
Start by tracing the warmup request path around aiohttp_client.py and the terminal failure handling in callback_handler.py; the issue gives the failing request and log lines but no test file. Reproduce the closed keep-alive connection during a concurrent warmup, then check that a connection error raised before delivery retries once on a fresh connection and profiling proceeds.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
During an AgentX warmup, a single request fails while it is still being written: aiperf reuses a keep-alive connection that the server closed right after the previous response. aiperf treats that as a terminal warmup failure and aborts the whole benchmark (warmup_failure), so profiling never starts. Nothing was delivered to the server, so this failure is safe to retry. Retrying it once on a fresh connection would avoid aborting the benchmark.
Setup
- InferenceX
408c015(#3583), aiperf submodule754356e9(fix(agentx): allow sparse low-concurrency profile tails (#41)). - Scenario
inferencex-agentx-mvp, public datasetsemianalysis_cc_traces_weka_062126, concurrency 32. These are the recipe's own settings:benchmarks/single_node/srt-slurm-recipes/dsv41flash/vllm/mi355x-fp4-mtp/agentic.yaml. - Server: DeepSeek-V4.1-Flash, vLLM
0.32.1rc1.dev36+ge68efc685, imagevllm/vllm-openai-rocm:nightly-rocm100-e68efc685ab1e6f1eda004ced7157e3ca411da2f, launched with exactly the recipe argv/env, TP4 on 4x MI355X. Client and server ran in the same pod; the client talked to127.0.0.1. - The recipe pins
nightly-rocm100-7f1a5398..., which is no longer on Docker Hub.e68efc685carries the same vllm/torch/aiter versions that were in our failing environment.
What happens
The failure is always on the same request: trace 085aacf44ac5428ad3c6b4f6cd431e083832, turn 351, about 650K tokens of context and a 2.5 MB body, about 6 minutes into warmup.
Timeline from one run (profile_export.jsonl + benchmark.log):
| Turn | Start | End | Result |
|---|---|---|---|
| 350 | 04:05:21.503 | 04:05:27.070 | ok, on a reused keep-alive connection |
| 351 | 04:05:27.072 | 04:05:27.072 | error, sent 2 ms after turn 350 returned, failed after 0.35 ms |
04:05:27.072 ERROR Error in aiohttp request: ClientOSError(None, 'Can not write request body for http://127.0.0.1:8888/v1/chat/completions') (aiohttp_client.py:300)
04:05:27.075 WARNING Terminal warmup failure for trace 085aacf44ac5428ad3c6b4f6cd431e083832; aborting run early (broadcasting ProfileCancelCommand). (callback_handler.py:310)
04:05:27.076 WARNING Run aborted (warmup_failure): A root AgentX warmup request failed, so profiling was not started. ...
profile_export records the cause as ClientConnectionResetError('Cannot write to closing transport'). In another environment the same request failed with ClientOSError(104, 'Connection reset by peer'), also 2 ms after turn 350 returned on a reused connection.
The server logged no error and stayed up in every case.
Frequency
- Running the unchanged command in a standalone pod: 1 of 3 runs aborted this way. The other two completed warmup (354/354, 0 errors) and profiled for 10+ minutes with 0 errors.
- In a different (sandboxed) environment with the same image and command: 3 of 3 attempts aborted on this request.
- Replaying turn 351 by itself, either on a fresh connection or 1-2 ms after turn 350 on a single keep-alive connection, returned 200 six out of six times. So the request content is fine; the failure needs the concurrent run's timing.
Suggested fix
- On a connection-level error raised before any request bytes reached the server (closed/closing transport, reset while writing the body), retry the request once on a new connection instead of failing it.
- Optionally, don't make a single transport-level warmup error fatal for the whole run.
The client side of this does not depend on GPU vendor. We have only exercised it with the ROCm vLLM image above; we have not checked how often other servers close keep-alive connections at this point. Why the server closes the connection there (possibly the new HTTP frontend; the recipe sets VLLM_USE_RUST_FRONTEND=1) is a separate question that we have not verified.
- Lenguaje dominante
- Python
- Estrellas
- 1.9k
- Forks
- 343
- Merge medio
- 2 d 40 min
- PR fusionados (30 d)
- 431
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de SemiAnalysisAI/InferenceX
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SemiAnalysisAI/InferenceX#2125 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SemiAnalysisAI/InferenceX#1587 ·
Los mantenedores suelen responder en 1 día
-
[experimental chore/agentx-v0.2-aiperf-testing branch] agentic build_replay_cmd: missing --tokenizer-trust-remote-code breaks Kimi-K2.5 (and other custom-code tokenizer models) / agentic build_replay_cmd 缺少 --tokenizer-trust-remote-code 导致 Kimi-K2.5 等自定义 tokenizer 模型失败Quizá libre de nuevo @sahil-bhatti-ai la tomó hace 170 días y no hay ningún pull request abierto. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
SemiAnalysisAI/InferenceX#1369 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
SemiAnalysisAI/InferenceX#1359 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 18/100
SemiAnalysisAI/InferenceX#4655 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de SemiAnalysisAI/InferenceX
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
NousResearch/hermes-agent#147104 ·
Los mantenedores suelen responder en 1 día
-
premises-missing
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
WingedGuardian/GENesis-AGI#3801 ·
Los mantenedores suelen responder en 1 día
-
[oblt-aw][autodoc] Document new required `shared-org-key` input for `obs-aw-dependency-review`Posiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
bot-triaged module: inductor oncall: pt2 topic: fuzzer triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 4 días