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.

I2706 — Vlastní událost, jejíž připojení selhalo, se nikdy nepotvrdí jako trvalá a opětovné načtení žurnálu je omezeno velikostí

Odmítnout potvrdit vlastní událost meshe jako trvalou, když selhalo její připojení, a omezit, kolik toho načtení žurnálu přečte.

HOTOVO vlna 1 · p0 · profil implementation · běží samostatně

Součást mesh-journal-converges — Žurnál spolupráce je trvalý, konverguje při jakémkoli pořadí doručení a nikdy nenechá zvítězit zastaralý claim.

Cíl

Odmítnout potvrdit vlastní událost meshe jako trvalou, když selhalo její připojení, a omezit, kolik toho načtení žurnálu přečte.

Proč

Odděleno od I2137 dne 2026-10-14. I2137 učinil připojování synchronizovaným a počítajícím selhání, znovunačtení počítajícím nečitelné řádky, kompaktaci atomickou a soubor přístupným jen vlastníkovi a jeho desired_state říkal „Not done here“ o mezi velikosti při znovunačtení a o odmítnutí potvrdit vlastní událost, jejíž připojení selhalo (drží se v paměti a replikuje se a ztráta se hlásí), zatímco jeho akceptační kritéria stále vyžadovala, aby událost nebyla potvrzena jako trvalá, takže se nikdy nemohl uzavřít. Základní audit z 2026-10-09 na master 1fb8d6be44, mezera selhání 4 a řádky tříd selhání plný disk a useknutý žurnál.

Aktuální stav

Journal::append_own (apps/majordomus-cli/src/mesh/journal.rs) vrací Ok, když zápis na disk selže: událost se drží v paměti a replikuje se a JournalTallies.write_failures počítá ztrátu, kterou hlásí mesh doctor (apps/majordomus-cli/src/mesh/doctor.rs, journal_check). Test a_failed_append_is_counted_and_the_file_is_the_owners_alone ověřuje přesně toto Ok. Opětovné načtení čte celý soubor bez omezení velikosti.

Cílový stav

Vlastní událost, jejíž append selhal, se volajícímu hlásí jako nedurable (držena a replikována, ale nepotvrzena), takže schopnost, která ji zapisuje, netvrdí, že je na disku; opětovné načtení čte nejvýš deklarovaný počet bajtů a hlásí, co nechalo nepřečtené, a mesh doctor to jmenuje.

Rozsah

  • apps/majordomus-cli/src/mesh/journal.rs
  • apps/majordomus-cli/src/mesh/doctor.rs
  • apps/majordomus-cli/src/capability/builtin/mesh.rs
  • test/cases
  • docs/MESH.md

Mimo rozsah

  • Synchronizované připojení, součty selhání zápisu a nečitelných řádků, atomické zhuštění a vytvoření jen pro vlastníka, což I2137 dodalo

Závislosti

Kritéria přijetí

  • Neúspěšný zápis na souborovém systému jen pro čtení nebo plném v testu nechá jeho událost nepotvrzenou jako trvalou volajícímu, který ji připojil
  • Žurnál větší než mez opětovného načtení se načte až do meze a nepřečtená část je spočítána a hlášena příkazem mesh doctor

Validace

  • bin/majordomus plan validate
  • cargo test --lib mesh::journal

Požadované důkazy

  • failed_append_not_acknowledged_test
  • reload_size_bound_test

Důkazy

pokrývátypcommandvýsledeku commitu
failed_append_not_acknowledged_testtestcargo test --lib -- mesh::journal56 prošlo, 0 selhalo, vč. a_failed_append_is_not_acknowledged_as_durable (kód od 06e28bb4de0, předka 4a4573690f8; znovu spuštěno na 4a4573690f8)4a45736
reload_size_bound_testtestcargo test --lib -- mesh::journal56 prošlo včetně a_reload_is_bounded_and_the_unread_part_is_counted a a_compaction_keeps_what_a_bounded_reload_left_unread (kód od 06e28bb4de0, předka 4a4573690f8; znovu spuštěno na 4a4573690f8)4a45736

Časová osa

zahájeno
2026-10-17T18:25:04Z
ověřeno
2026-10-17T18:25:16Z
dokončeno
2026-10-17T18:25:22Z

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/I2706.yaml. Přečtěte ho zpět pomocí majordomus plan show I2706.

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