Files
bot-bottle/bot_bottle/backend/firecracker
didericis f32342dc7d
test / stage-firecracker-inputs (pull_request) Successful in 1s
test / integration-docker (pull_request) Successful in 24s
test / unit (pull_request) Successful in 31s
test / build-infra (pull_request) Successful in 3m53s
test / integration-firecracker (pull_request) Successful in 1m41s
test / coverage (pull_request) Successful in 1m54s
test / publish-infra (pull_request) Has been skipped
lint / lint (push) Successful in 48s
tracker-policy-pr / check-pr (pull_request) Failing after 9s
fix(firecracker): make cleanup reap orphans only, never live VMs
`cleanup()` enumerated *every* firecracker process under the run root and
*every* run dir, so `./cli.py cleanup` would kill running bottles and
delete their rootfs — despite being described as orphan cleanup. The
backend's `enumerate_active` registry is still a stub (#354), so there
was no live/dead signal.

Use the running firecracker processes themselves as that signal: a run
dir with a live VM is protected (never killed, never removed); only run
dirs with no live process (leaked by a hard-killed launch) are reaped,
plus firecracker pids whose run dir is already gone (lingering VMMs).

This makes cleanup safe to run alongside live bottles and lets it back a
periodic GC for the run-dir leak the launch.py teardown fix closes on the
clean-exit path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 22:28:26 -04:00
..