Skip to content

ci/run-integration.sh leaked every HTTP worker it booted - #11

Merged
rustyconover merged 1 commit into
mainfrom
http-worker-cleanup
Oct 7, 2026
Merged

rustyconover merged 1 commit into
mainfrom
http-worker-cleanup

Conversation

@rustyconover

Copy link
Copy Markdown
Contributor

boot_http_worker recorded each server with BG_PIDS+=("$pid"), but every
caller used port="$(boot_http_worker ...)". A command substitution runs
in a subshell, so the append never reached the script's BG_PIDS and the
EXIT trap's cleanup killed nothing: each run left all of its --http
servers running. Harmless on a throwaway CI VM; on the shared build host
it accumulated batches of orphaned Java workers under PID 1.

boot_http_worker now sets BOOTED_PORT and is called directly, the
pattern vgi-python, vgi-go, vgi-rust and vgi-c++'s ci/run-integration.sh
already use. Checked by running the script's own boot_http_worker and
cleanup against a stub worker: 2 servers left behind before, 0 after,
with the ports still returned.

🤖 Generated with Claude Code

boot_http_worker recorded each server with BG_PIDS+=("$pid"), but every
caller used port="$(boot_http_worker ...)". A command substitution runs
in a subshell, so the append never reached the script's BG_PIDS and the
EXIT trap's cleanup killed nothing: each run left all of its `--http`
servers running. Harmless on a throwaway CI VM; on the shared build host
it accumulated batches of orphaned Java workers under PID 1.

boot_http_worker now sets BOOTED_PORT and is called directly, the
pattern vgi-python, vgi-go, vgi-rust and vgi-c++'s ci/run-integration.sh
already use. Checked by running the script's own boot_http_worker and
cleanup against a stub worker: 2 servers left behind before, 0 after,
with the ports still returned.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@rustyconover
rustyconover merged commit 95706d5 into main Oct 7, 2026
12 checks passed
@rustyconover
rustyconover deleted the http-worker-cleanup branch October 7, 2026 23:10
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