|
Ran
|
Jobs
1
|
Files
923
|
Run time
2min
|
Badge
README BADGES
|
push
github
feat(vmcp): stop session init stalling on backends that never service the notification stream (#6633) * feat(vmcp): make the backend session-init timeout configurable WithBackendInitTimeout existed but nothing outside tests called it, so session init was pinned to the 30s default. operational.timeouts only ever raised it. Add operational.timeouts.backendInit and wire it, and make an explicitly configured value authoritative so a longer workload request timeout no longer extends it. A backend that stalls the handshake instead of answering or failing now has a bound short enough to lose the race against a client's own connect timeout, which partialFailureMode: best_effort turns into a usable session. Default behaviour is unchanged when backendInit is unset. (cherry picked from commit 7862764c3) * test(vmcp): cover the session factory option wiring Serve is too big to unit test, so the two lines wiring backendInit went uncovered. Pull the option building into sessionFactoryOptions and test its branches directly. No behaviour change. (cherry picked from commit 02f0a0361) * feat(vmcp): let backends opt out of list_changed propagation Subscribing to a backend's list_changed notifications opens a standalone notification stream during session initialization. A backend that accepts the subscribe and then never services it stalls the handshake until the init deadline, and clients with their own connect timeout give up first. The connector already treats a nil sink as "do not subscribe" and its comment says the stream must stay opt-in because some backends hang on it, but the server supplies a sink for every session, so in production that gate was unreachable. Add operational.listChanged, and a WithListChangedFilter factory option in the per-workload resolver shape the factory already uses, so a single misbehaving backend can be excluded while the rest keep live propagation. An excluded ba... (continued)
51 of 75 new or added lines in 3 files covered. (68.0%)
829 existing lines in 10 files now uncovered.81662 of 115501 relevant lines covered (70.7%)
97.52 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 21 |
37.02 |
-1.5% | pkg/vmcp/config/zz_generated.deepcopy.go |
| 3 |
38.06 |
5.11% | pkg/vmcp/cli/serve.go |
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 335 |
44.17 |
-0.13% | cmd/thv-operator/api/v1beta1/zz_generated.deepcopy.go |
| 316 |
67.09 |
0.06% | cmd/thv-operator/controllers/virtualmcpserver_controller.go |
| 83 |
81.47 |
0.69% | cmd/thv-operator/api/v1beta1/mcpexternalauthconfig_types.go |
| 32 |
91.57 |
0.0% | pkg/authserver/config.go |
| 30 |
92.44 |
0.18% | pkg/authserver/upstream/oauth2.go |
| 17 |
85.11 |
0.05% | pkg/authserver/runner/embeddedauthserver.go |
| 11 |
90.97 |
0.02% | cmd/thv-operator/pkg/controllerutil/authserver.go |
| 3 |
82.77 |
-0.23% | pkg/authserver/storage/redis.go |
| 1 |
96.77 |
-3.23% | pkg/foreach/foreach.go |
| 1 |
94.49 |
-0.79% | pkg/vmcp/composer/dag_executor.go |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 35070099263.1 | 923 |
70.7 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
|---|