Skip to content

ci: fix live server-capture gate (runner lost NO_PROXY) + print server.log on failure - #937

Open
maocheng23 wants to merge 2 commits into
mainfrom
ci/capture-gate-dump-server-log
Open

maocheng23 wants to merge 2 commits into
mainfrom
ci/capture-gate-dump-server-log

Conversation

@maocheng23

@maocheng23 maocheng23 commented Oct 6, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

The live server-capture gate in PR Test fails on every PR since 09-30, for example #934 (twice) and this PR's first run:

RuntimeError: sglang server did not become healthy (exit code -9); tail of .../server.log:
...
[...] Uvicorn running on http://127.0.0.1:30989
[...] Initialization failed. warmup error: ...
AssertionError: res=<Response [502]>, res.text=''
[...] kill_process_tree called: parent_pid=...

Root cause: the self-hosted runner still exports HTTP_PROXY/HTTPS_PROXY=http://172.17.0.1:7890 into the job container, but NO_PROXY/no_proxy are no longer exported. They were present in the last green run (09-30, NO_PROXY=localhost,127.0.0.1,::1,...) and are absent in every run since. sglang's startup warmup POSTs to 127.0.0.1, so the request goes to the proxy, which returns 502, and the server kills itself.

Changes

  • ci: set NO_PROXY=localhost,127.0.0.1,::1 at the unit-test job level, so loopback traffic bypasses the proxy regardless of the runner's environment.
  • test(capture-gate): when the server doesn't become healthy, include its exit code and the last 80 lines of server.log in the error. That's how this cause was found; before, the job log only gave a path inside the discarded container.

Runner admins may also want to restore NO_PROXY in the runner's own environment, since other loopback traffic in the job is affected too.

🤖 Generated with Claude Code

The gate only reported the server.log path, which lives in the CI
container and is gone after the job. Include the exit code and the last
80 lines so a startup crash is diagnosable from the job log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@maocheng23 maocheng23 changed the title test(capture-gate): print server.log tail when sglang fails to start ci: fix live server-capture gate (runner lost NO_PROXY) + print server.log on failure Oct 6, 2026
The self-hosted runner still exports HTTP_PROXY/HTTPS_PROXY into the job
container but stopped exporting NO_PROXY (present on 09-30, absent since).
sglang's startup warmup POSTs to 127.0.0.1, went through the proxy, got a
502 and the server killed itself, failing the live server-capture gate on
every PR. Set NO_PROXY for loopback at the job level.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@maocheng23
maocheng23 force-pushed the ci/capture-gate-dump-server-log branch from d55ff90 to 2a63211 Compare October 6, 2026 06:14

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant