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.

I2987 — server.status a peers.list se ptají všech checkoutů najednou, omezeného počtu naráz

Přimět čtení celého repozitáře `server.status` a `peers.list`, aby se na checkouty, které git eviduje, ptala souběžně, nejvýše `server::ASKED_AT_ONCE` (16) najednou, přes jednoho pomocníka (`server::each_checkout`). Odpovědi se skládají v pořadí, v jakém git checkouty vypisuje, takže výstup, jeho pořadí a `complete` jsou to, co dávala smyčka po jednom. Každý probe zůstává omezen deklarovaným timeoutem probe, takže čekání jsou jen několik timeoutů bez ohledu na počet checkoutů.

HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně

Součást a-second-adopter-is-served — A second adopter is served: what a foreign repository met on its first day is fixed in the tool.

Cíl

Přimět čtení celého repozitáře `server.status` a `peers.list`, aby se na checkouty, které git eviduje, ptala souběžně, nejvýše `server::ASKED_AT_ONCE` (16) najednou, přes jednoho pomocníka (`server::each_checkout`). Odpovědi se skládají v pořadí, v jakém git checkouty vypisuje, takže výstup, jeho pořadí a `complete` jsou to, co dávala smyčka po jednom. Každý probe zůstává omezen deklarovaným timeoutem probe, takže čekání jsou jen několik timeoutů bez ohledu na počet checkoutů.

Proč

Terénní zpráva adoptéra z 0.29.0 (prismatic-platform, 2026-10-18, položka 5) změřila, že `/api/v1/server` s výchozím `checkouts=repository` blokuje 30 s i déle, zatímco `/` odpovídá za 0,5 ms, a `serve status` selhává s `Resource temporarily unavailable (os error 35)`, při asi 58 procesech `serve` na stroji. Obě schopnosti četly lease každého checkoutu a sondovaly jeho server jeden po druhém, takže jeden zaseknutý server přidal plný timeout sondy na checkout. Brief hlásí 545 nástěnek na tomto stroji a blackboard (I2980) je čte stejným gather.

Aktuální stav

server_status a peers_list procházejí checkouty sekvenčně; čekání je součet všech sond.

Cílový stav

Checkouty se ptají po šestnácti a odpověď je stejná, ve stejném pořadí.

Rozsah

  • apps/majordomus-cli/src/capability/builtin/server.rs
  • apps/majordomus-cli/src/capability/builtin/peers.rs

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Každý checkout je obsloužen v daném pořadí, více se jich dotazuje najednou, nikdy ne více než ASKED_AT_ONCE (unit test every_checkout_is_asked_at_once_and_answered_in_order)
  • Stávající unit testy serveru a peers a jejich případy procházejí beze změny

Validace

  • cargo test --lib -- capability::builtin::server
  • cargo test --lib -- capability::builtin::peers

Požadované důkazy

  • unit_checkouts_at_once

Důkazy

pokrývátypcommandvýsledeku commitu
unit_checkouts_at_oncecivalidate run 39438896504 at master 9a5a9b77520: rust (1-3) jobs 118683336143 118683336062 118683336401 run cargo test, incl. capability::builtin::server::every_checkout_is_asked_at_once_and_answered_in_order (baadbbfb025)success (the run's only red job is pages, which runs no test)a81b1e3

Časová osa

zahájeno
2026-10-20T16:18:04Z
ověřeno
—
dokončeno
2026-10-20T16:32:59Z

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/I2987.yaml. Načtěte ho zpět pomocí majordomus plan show I2987.

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