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

kubernetes-sigs / inference-perf / 39817639190
84%

Build:
DEFAULT BRANCH: main
Ran 22 Oct 2026 04:59PM UTC
Jobs 1
Files 136
Run time 1min
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

22 Oct 2026 04:51PM UTC coverage: 83.794%. Remained the same
39817639190

push

github

web-flow
test: bounded termination and outage recovery (#738)

Part of #620

Nothing in the suite asserted that a run against a dead endpoint ends.
`LoadConfig.request_timeout` defaults to `None`, so the session gets
`aiohttp.helpers.sentinel` instead of a `ClientTimeout`. `mp_run` calls
`run_stage` with no timeout. The client timeout is the only thing that
bounds a stage. On the sim side, #583 covers a terminal outage but not
recovery, where client state reused across a stage boundary would
corrupt later stages.

Now a run against a dead endpoint must end in bounded time with every
request recorded as a failure and all three lifecycle reports written. A
run whose simulator dies and comes back must keep its failures inside
the outage stage and its aggregates clean. Tracked in #792 under Test
backfill, as one Integration row and one e2e row.

Changes:

* `test_run_terminates_when_nothing_is_listening` in
`tests/required/integration/test_dead_server_termination.py`. An
ephemeral port is bound, read and closed, so every connect is refused.
Asserts the run finishes inside `RUN_BOUND_SEC`. All N requests fail
with no response metrics. All three lifecycle reports show 0 successes
and N failures. Every worker exits 0 before `LoadGenerator.stop()`
escalates to SIGTERM.
* `test_run_terminates_when_the_server_never_responds`, same file. A
fake accepts, drains the request and writes nothing back, so only the
client timeout can end it. Same asserts, plus between 1 and N accepted
connections (no retries).
* `test_configured_request_timeout_reaches_the_aiohttp_session`, same
file. No load run. A client built with `timeout` set reaches aiohttp as
a total `ClientTimeout`. With no `timeout` it falls through to
`aiohttp.client.DEFAULT_TIMEOUT`.
* `test_run_recovers_after_a_midrun_sim_outage` in
`e2e/tests/test_sim_outage_then_recovery.py`. Uses the #583 harness
pattern with three equal stages. The sim is killed after stage 0,
synchronized on its own `vllm:request_success` count... (continued)

12389 of 14785 relevant lines covered (83.79%)

0.84 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39817639190.1 22 Oct 2026 04:59PM UTC 136
83.79
GitHub Action Run
Source Files on build 39817639190
  • Tree
  • List 136
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39817639190
  • 2d301603 on github
  • Prev Build on main (#39817354238)
  • Next Build on main (#39817891024)
  • Delete
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