-
Notifications
You must be signed in to change notification settings - Fork 292
fix: revert required srt frontend variables #2706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔴 This revert hardcodes the AgentX frontend at
http://localhost:$PORT(both the drain probe here and the--urlfallback inbenchmark_lib.sh:1999), but the 6 GB300 DeepSeek-V4 dynamo-trt recipes added in the same #2690 commit (agentx-gb300-20260811/*.yaml) setorchestrator_placement: first_decode/client_placement: last_decodewithdecode_nodes >= 4, so the frontend and benchmark client always run on different nodes and never setSRT_FRONTEND_HOST/PORTthemselves. Reverting unconditionally re-breaks exactly the points #2690 added (traffic and drain probe both hit a non-listening localhost); a better fix is to makeAIPERF_SERVER_URLconditional — set it only whenSRT_FRONTEND_HOST/SRT_FRONTEND_PORTare present, falling back to localhost otherwise — so both recipe families work.Extended reasoning...
The bug: This PR reverts
agentic_srt.shto drop theSRT_FRONTEND_HOST/SRT_FRONTEND_PORTrequirement and theAIPERF_SERVER_URLexport, restoring the old assumption that the AgentX frontend and the benchmark client are colocated on the same node (hardcodinghttp://localhost:$PORT/metricsfor the drain probe, and relying onbenchmark_lib.sh:1999's--url ${AIPERF_SERVER_URL:-http://localhost:$PORT}fallback for the actual replay traffic). That assumption is true for the older colocated recipes this PR is trying to fix, but it is false for the 6 GB300 DeepSeek-V4dynamo-trtAgentX recipes underbenchmarks/multi_node/srt-slurm-recipes/trtllm/deepseek-v4/agentx-gb300-20260811/, which were added in the very same #2690 commit that introduced theSRT_FRONTEND_*machinery this PR now reverts.\n\nThe code path: Verified directly against the recipe files — all six recipes setfrontend.orchestrator_placement: first_decodeandbenchmark.client_placement: last_decode, and every one hasdecode_nodes >= 4(values are 8, 8, 6, 8, 4, 4 across the six files). Sincefirst_decodeandlast_decodeindex into a decode-node list of size >= 4, they always resolve to two different physical nodes. None of these recipes setSRT_FRONTEND_HOST/SRT_FRONTEND_PORTin theirbenchmark.env(onlyPORT: 8000etc.) — that injection was expected to come from the external srt-slurm harness based on the placement fields, which is exactly what #2690'scheck_env_vars ... SRT_FRONTEND_HOST SRT_FRONTEND_PORT+export AIPERF_SERVER_URLwas there to consume.\n\nWhy nothing else prevents this:build_replay_cmdinbenchmark_lib.sh:1999still reads--url ${AIPERF_SERVER_URL:-http://localhost:$PORT}; this PR only touchesagentic_srt.sh, so onceAIPERF_SERVER_URLis no longer exported, that fallback silently kicks in. There's also a smoking gun inrunners/launch_gb300-nv.sh:252-260, which for the eval-only path explicitly rewritesorchestrator_placement: first_decode->headwith the comment 'Keep AgentX frontends on first_decode for throughput, but co-locate the eval-only frontend with lm-eval so loopback resolves.' That comment only makes sense if loopback does not resolve to the frontend in the normal (non-eval-only) AgentX path — confirming the frontend and client are genuinely on separate nodes for these recipes.\n\nStep-by-step proof (usingdynamo-disagg-gb300-1p1d-dep8-dep32-c388-b4-mtp.yaml, decode_nodes=8):\n1. The srt-slurm harness allocates 8 decode nodes;first_decode= decode node #1 (runs the dynamo frontend/orchestrator on port 8000),last_decode= decode node #8 (runsagentic_srt.shas the benchmark client).\n2. Before this PR:SRT_FRONTEND_HOST/SRT_FRONTEND_PORTare injected pointing at decode node #1;agentic_srt.shexportsAIPERF_SERVER_URL=http://<decode-node-1-ip>:8000, and both the replay traffic and the drain probe correctly target that remote node.\n3. After this PR:SRT_FRONTEND_HOST/SRT_FRONTEND_PORTare no longer required or consumed, soAIPERF_SERVER_URLis never set.\n4.build_replay_cmdfalls back to--url http://localhost:8000— but the script is running on decode node #8, where no dynamo frontend is listening on port 8000.\n5. The drain probe likewise hitshttp://localhost:8000/metricson decode node #8, which also isn't serving that endpoint.\n6. Result: every request in the AgentX replay fails to connect, and/or the drain probe never gets valid metrics — the recipe fails, for all 6 of #2690's new points.\n\nThe fix: Don't revert unconditionally. MakeAIPERF_SERVER_URLconditional — export it ashttp://${SRT_FRONTEND_HOST}:${SRT_FRONTEND_PORT}only when both vars are present (and drop them fromcheck_env_vars's hard-required list), otherwise fall back tohttp://localhost:$PORTfor the colocated recipes. Same for the drain probe URL. That satisfies both the older colocated recipes (the actual regression target of this PR, per the linked discussion) and the 6 split-placement GB300 dsv4 recipes from #2690, instead of trading one compatibility break for another.