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

stacklok / toolhive / 33640666112
70%

Build:
DEFAULT BRANCH: main
Ran 02 Sep 2026 02:21PM UTC
Jobs 1
Files 905
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

02 Sep 2026 02:13PM UTC coverage: 69.843% (+0.007%) from 69.836%
33640666112

push

github

web-flow
Bound and close HTTP client connection pools (#6480)

* Bound and close HTTP client connection pools

Every client from networking.HttpClientBuilder.Build had an unbounded,
undrainable connection pool: IdleConnTimeout was left at zero ("never
expire"), and CloseIdleConnections was a silent no-op because the
ValidatingTransport wrapper did not implement it. A client that made one
request and was dropped held a socket and its goroutine pair for the
lifetime of the process, with no remediation available.

On the auth-server upstream path this compounded — one transport per
configured upstream, released by nothing on shutdown, so every server
reconstruction in a long-lived process leaked the whole set.

Implements changes for issue #6479:
- Set IdleConnTimeout, MaxIdleConns and MaxIdleConnsPerHost in Build so
  every client's pool is bounded and self-draining
- Forward CloseIdleConnections through ValidatingTransport, and wrap the
  auth-token-file oauth2.Transport so the call reaches the pool there too
- Add upstream.IdleConnectionCloser as an optional capability, implemented
  by BaseOAuth2Provider; keeping it out of OAuth2Provider avoids breaking
  external implementations of that open interface
- Add Server.CloseIdleConnections, distinct from Close, so an embedder can
  retire a superseded server without closing storage a replacement server
  is still serving through; Close now drains upstreams first
- Add Config.UpstreamFactory (with exported UpstreamProviderFactory and
  DefaultUpstreamFactory) so callers can share HTTP clients across
  reconstructions and isolate per-upstream construction failures

* Address code review feedback

Fixed issues from code review:
- HIGH: OIDCProviderImpl satisfied upstream.IdleConnectionCloser only by
  promotion from its embedded *BaseOAuth2Provider, so losing the promotion
  would restore the leak silently — exactly the failure mode this change
  exists to remove. Pinned it with a var _ assertion and added a test th... (continued)

111 of 129 new or added lines in 8 files covered. (86.05%)

10 existing lines in 3 files now uncovered.

77216 of 110556 relevant lines covered (69.84%)

91.82 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
26.32
-7.02% pkg/authserver/upstream/mocks/mock_provider.go
4
85.53
0.54% pkg/authserver/upstream/oidc.go
2
85.16
1.07% pkg/authserver/server_impl.go

Coverage Regressions

Lines Coverage ∆ File
6
72.34
-6.38% pkg/secrets/keyring/keyctl_linux.go
3
59.63
-0.31% pkg/workloads/manager.go
1
81.07
-0.12% pkg/vmcp/composer/workflow_engine.go
Jobs
ID Job ID Ran Files Coverage
1 33640666112.1 02 Sep 2026 02:21PM UTC 905
69.84
GitHub Action Run
Source Files on build 33640666112
  • Tree
  • List 905
  • Changed 13
  • Source Changed 9
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33640666112
  • 2ad87a3b on github
  • Prev Build on main (#33632135264)
  • Next Build on main (#33742410618)
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