Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I0906 — Ukončení je řádné a doložené proti skutečnému kontejneru

Obsloužit SIGTERM a SIGINT tak, aby Machine, která se zastavuje, znovu nasazuje nebo automaticky vypíná, dokončila rozpracované odpovědi a skončila v časovém limitu platformy.

PŘIPRAVENO vlna 3 · p1 · profil implementation · bezpečné paralelně

Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I0906 bude přijato.

Cíl

Obsloužit SIGTERM a SIGINT tak, aby Machine, která se zastavuje, znovu nasazuje nebo automaticky vypíná, dokončila rozpracované odpovědi a skončila v časovém limitu platformy.

Proč

Profil s autostop a nulovým minimem strojů znamená, že proces je ukončován běžně, ne výjimečně. Server zabitý uprostřed odpovědi činí z každého nasazení a každého nečinného okna zdroj useknutých požadavků.

Aktuální stav

Zastavení je kooperativní pro vlastní volání vlastníka — workeři se odblokují a joinují a rozpracovaná odpověď se dokončí — ale nic to nepojí na signál procesu.

Cílový stav

Ukončovací signál přestane přijímat nová spojení, dokončí, co běží, a skončí v rámci omezeného, zdokumentovaného limitu, což je dokázáno proti produkčnímu kontejneru, ne jen proti unit testu.

Rozsah

  • apps/majordomus-cli/src/http/server.rs
  • apps/majordomus-cli/src/commands/serve.rs

Mimo rozsah

  • Vypouštění stavu aplikace; servírovaná vrstva je jen pro čtení
  • Konfigurace kill signálů providera, pokud měření neukáže, že výchozí je špatný

Závislosti

Co na tom čeká

Kritéria přijetí

  • SIGTERM i SIGINT zahájí řádné zastavení
  • Požadavek rozpracovaný v okamžiku příchodu signálu dostane svou úplnou odpověď
  • Proces skončí v dokumentovaném časovém limitu a hlásí neschybový exit
  • Chování je prokázáno proti produkčnímu kontejneru, nejen v rámci procesu

Validace

  • cargo test --workspace --all-features
  • bash test/run.sh

Požadované důkazy

  • sigterm_clean
  • inflight_finished
  • exit_within_timeout

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Riziko

Obsluha signálu, která čeká na neomezené spojení, nikdy neskončí a platforma ji stejně zabije. Timeout je součástí kontraktu a musí být deklarován.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

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.

Kanonický záznam: .ai/repo/project/issues/I0906.yaml. Přečtěte jej zpět pomocí majordomus plan show I0906.

Prohledává názvy a popisy všech stránek, které tento web publikuje.