I3099 — The serve-lifecycle test tells a stopped server from another server answering its freed port
Make tests/serve_lifecycle.rs ensure_starts_one_server_finds_it_the_next_time_and_stop_ends_it assert what `serve stop` promises (the process has exited once it says stopped) and treat its old address as closed when nothing answers there or a server with another pid does, with a failure that names what still answered.
HOTOVO vlna 0 · p1 · profil debugging · bezpečné paralelně
Součást development-runtime — The runtime has a development surface.
Cíl
Make tests/serve_lifecycle.rs ensure_starts_one_server_finds_it_the_next_time_and_stop_ends_it assert what `serve stop` promises (the process has exited once it says stopped) and treat its old address as closed when nothing answers there or a server with another pid does, with a failure that names what still answered.
Proč
On 2026-10-21 master validate 39565286918 (905159df7cc, the 1.0.0-alpha.2 candidate) failed rust (3) at serve_lifecycle.rs:76 with \"the port closes did not happen within 5s\"; the same tree passed rust (3) twice in PR run 39542849828. `serve stop` prints stopped only after exited_by has seen the process end, so the server was gone; what kept answering was the freed port, which the tests of the same binary, run at once, can be given within the second.
Aktuální stav
The test waits up to 5 s for any answer at the stopped server's address to stop, so another test's server on the reused port reads as the stopped one still running.
Cílový stav
The test asserts the process is gone, asks whoever answers the address for its pid, passes when nobody or another pid answers, and on failure names the pid that still answers.
Rozsah
- apps/majordomus-cli/tests/serve_lifecycle.rs
- .ai/repo/project/issues/I3099.yaml
Mimo rozsah
- Changing serve stop itself
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- After serve stop prints stopped, the test asserts the pid is no longer running
- A server of another pid answering the freed address does not fail the test
- A failure names the pid still answering at the address
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test serve_lifecycle
Požadované důkazy
- serve_lifecycle_passes
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| serve_lifecycle_passes | ci | cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test serve_lifecycle | ok, the rust job passed in master validate 39784979979 (success at 2034d4a3f0b, which holds the I3099 test, landed in a57482183bf) | 376493c |
Časová osa
- zahájeno
- 2026-10-21T09:32:52Z
- ověřeno
- 2026-10-21T10:20:28Z
- dokončeno
- 2026-10-23T16:42:56Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3099.yaml. Read it back with majordomus plan show I3099.