• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Freegle / Iznik / 21079
71%

Build:
DEFAULT BRANCH: master
Ran 13 Jun 2026 08:27PM UTC
Jobs 4
Files 1262
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

13 Jun 2026 08:00PM UTC coverage: 71.023% (+0.001%) from 71.022%
21079

push

circleci

edwh
fix(reaper): never reap a VM whose runner is actively connected (reused-VM mid-job bug)

Root cause of the residual ~31% build-test-katapult infrastructure_fails
(2026-06-13): the reaper keys "is this VM orphaned?" on the pipeline number baked
into the VM NAME — i.e. the pipeline that PROVISIONED it. But runner VMs are
pooled and reused, so a VM named for pipeline A is frequently running pipeline B's
job. Once A finishes, the reaper considers the VM orphaned and DELETEs it via the
Katapult API — killing B's job mid-run -> infrastructure_fail. The only guard was
MIN_AGE_SECONDS, and a stale deployment still running the old MIN_AGE=1800 (raised
to 9000 in d60571507) reaps reused VMs ~30 min in. Evidence: Katapult trash shows
deletions at HH:MM:02 (per-minute cron) at ~30-34 min age once the name-pipeline
finished, while a VM whose own pipeline was still running survived to 48 min.

Fix: independently of age/pipeline, refuse to delete a VM whose CircleCI runner
(named after the VM) connected within RUNNER_ACTIVE_GRACE_SECONDS (300s). A runner
actively running a task holds a continuous connection, so last_connected is always
a few seconds old — verified live: a busy VM reads last_connected ~1s, idle/done
VMs read minutes. This protects busy VMs even if MIN_AGE is misconfigured low, so
the bug cannot recur regardless of which deployment runs. Fail safe: if the runner
inventory can't be fetched, treat all as active and delete nothing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

10705 of 14260 branches covered (75.07%)

Branch coverage included in aggregate %.

116840 of 165323 relevant lines covered (70.67%)

35.85 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
97.67
-2.33% iznik-server-go/abtest/abtest.go
Jobs
ID Job ID Ran Files Coverage
21079 laravel - 21079 13 Jun 2026 08:28PM UTC 441
67.39
CircleCI Job 21079
21079 playwright - 21079 13 Jun 2026 08:28PM UTC 70
23.0
CircleCI Job 21079
21079 go - 21079 13 Jun 2026 08:27PM UTC 128
83.44
CircleCI Job 21079
21079 vitest - 21079 13 Jun 2026 08:28PM UTC 692
68.93
CircleCI Job 21079
Source Files on build 21079
  • Tree
  • List 1262
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • CircleCI Build #21079
  • 2c1b6c73 on github
  • Prev Build on master (#20994)
  • Next Build on master (#21094)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc