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

stacklok / toolhive / 30343825881
70%

Build:
DEFAULT BRANCH: main
Ran 28 Jul 2026 08:54AM UTC
Jobs 1
Files 848
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

28 Jul 2026 08:47AM UTC coverage: 69.773% (-0.01%) from 69.786%
30343825881

push

github

web-flow
Fix workload status poisoning and deflake Envoy AllowPort (#6076)

ListWorkloads snapshotted the runtime before the status files. thv run
detaches before its container exists and the child flips the file to running
shortly after, so a list could observe "file running, runtime missing" and
persist unhealthy for a healthy workload -- with no recovery path, since
validateWorkloadInList skips revalidation for non-running file statuses. One
racy thv list permanently bricked a workload's status.

Read the files first: a file saying running at T implies the container existed
before T, so a later runtime miss is genuine. Guard the write as well --
reading files first newly allows a list that brackets an entire thv rm to
SetWorkloadStatus on a deleted file, and that call creates missing files,
resurrecting the workload as a ghost entry. The guard re-checks under the file
lock and skips if the file is gone or no longer says running/stopped.

This removes one trigger; the list path still writes on read, so the root
cause in #4432 stands.

Also retry the Envoy AllowPort spec's allowed-port leg and surface the fetch
error text. Its contract is steady-state reachability; success on the first
request after boot is not something Envoy's dynamic_forward_proxy path
promises. The blocked leg is untouched.

Refs #4432, #6078.

20 of 26 new or added lines in 1 file covered. (76.92%)

30 existing lines in 5 files now uncovered.

81290 of 116507 relevant lines covered (69.77%)

97.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
69.23
0.32% pkg/workloads/statuses/file_status.go

Coverage Regressions

Lines Coverage ∆ File
11
66.55
-0.6% pkg/workloads/manager.go
6
20.11
-3.45% pkg/client/manager.go
6
73.79
-5.83% pkg/state/local.go
5
67.14
-7.14% pkg/state/runconfig.go
2
88.24
-5.88% pkg/vmcp/backendregistry/registry.go
Jobs
ID Job ID Ran Files Coverage
1 30343825881.1 28 Jul 2026 08:54AM UTC 848
69.77
GitHub Action Run
Source Files on build 30343825881
  • Tree
  • List 848
  • Changed 8
  • Source Changed 1
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30343825881
  • d79c3a9d on github
  • Prev Build on main (#30342035384)
  • Next Build on main (#30345441341)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc