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.

I2825 — Claim uvolněný na jednom runtime je uvolněn na každém runtime, který ho drží, a odkaz na restartovaného peera se obnoví

Zjistit, proč událost uvolnění přijatá na jednom runtime tohoto stroje nikdy nedorazila k runtime, jehož stream claim drží, opravit to a přimět mesh, aby to řekl, když repliky přestanou konvergovat: odkazy na předchozí instanci peera znovu provedou handshake, místo aby byly donekonečna odmítány, a bouře odmítnutí se hlásí, ne mlčky počítá.

PŘIPRAVENO vlna 0 · p1 · 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.

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

Cíl

Zjistit, proč událost uvolnění přijatá na jednom runtime tohoto stroje nikdy nedorazila k runtime, jehož stream claim drží, opravit to a přimět mesh, aby to řekl, když repliky přestanou konvergovat: odkazy na předchozí instanci peera znovu provedou handshake, místo aby byly donekonečna odmítány, a bouře odmítnutí se hlásí, ne mlčky počítá.

Proč

Změřeno 2026-10-17 na v0.28.0 dvěma relacemi. Role vydávající release uvolnila svůj zbylý exkluzivní claim 641bdb94dae9f62268abf5ca73c11e15-b10f19aa2cd888a6-8241af227eccef89/c-c6b0b61f0813 (rozsah .ai/repo/project/milestones a jedenáct dalších cest) kolem 14:05Z; její runtime čte claim jako uvolněný (událost uvolnění .../409, lamport 116044). Runtime primárního checkoutu (641bdb94dae9f62268abf5ca73c11e15-b10f19aa2cd888a6), jehož vlastní stream claim drží, ho v 14:20Z stále čte jako exkluzivní a držený a odmítl nový exkluzivní claim na .ai/repo/project/milestones/local-inference.yaml s claim_conflict, který jej jmenuje. mesh_verify na tomto runtime ve stejnou dobu: 0 z jeho peerů zkonvergovalo, včetně dvou, jejichž synchronizační kolo bylo podepsáno oběma směry (641bdb94...-4ab11c0b4ae0a30e a 641bdb94...-7cd6629d6dbc4dc5, oba converged false); 5 lokálních spojení odmítnuto s 'unknown_link: the link belongs to a previous instance: say hello' (641bdb94...-4a22a29ec24865ff, -4a8d4a5d233c540e, -5afdc32087b73ba3, -5e889aa64e75bc59, -7e36cdfc3c10b84a); žurnál eviduje 12603248 odmítnutých událostí proti 1793 přijatým, 3772 pohlceným duplikátům a 0 čekajícím. Zda uvolnění nebylo nikdy odesláno, bylo odesláno a odmítnuto, nebo přijato a nezačleněno, není zjištěno a zjištění je prvním krokem. I2704 ohraničuje a měří četnost opakování unknown_link; nezařídí, aby se zastaralé spojení zotavilo nebo release zkonvergoval.

Aktuální stav

Uvolnění zapsané přes jeden runtime může zůstat nespatřeno na runtime, který tvrzení drží, takže výhradní tvrzení, které nikdo nevlastní, nadále odmítá ostatní; spoje k restartovanému peeru zůstávají odmítnuty jako předchozí instance; odmítnuté události se počítají, nevysvětlují.

Cílový stav

Uvolněné tvrzení se čte jako uvolněné na každém propojeném runtimu do jednoho kola synchronizace od chvíle, kdy k němu uvolnění dorazí; spojení odmítnuté jako předchozí instance se znovu handshakuje jednou a pak konverguje nebo hlásí proč; mesh_verify selže a uvede příčinu, když odmítnuté události rostou, zatímco přijaté ne.

Rozsah

  • apps/majordomus-cli/src/mesh/journal.rs
  • apps/majordomus-cli/src/mesh/state.rs
  • apps/majordomus-cli/src/mesh/link.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/src/capability/builtin/mesh.rs
  • docs/MESH.md

Závislosti

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

Kritéria přijetí

  • Dva runtime jednoho uzlu, claim přijatý na prvním a uvolněný přes druhý: po jednom synchronizačním kole ho oba čtou jako uvolněný a nový exkluzivní claim na jeho rozsah se na prvním přijme
  • Peer restartovaný pod novou instancí se po svém prvním odmítnutí jako předchozí instance znovu propojí, bez restartu volajícího
  • mesh_verify hlásí selhávající kontrolu s dominantním důvodem odmítnutí, když odmítnutých událostí přibývá a během synchronizačního kola nepřišla žádná událost

Validace

  • bin/majordomus plan validate
  • cargo test --test mesh_cooperation

Požadované důkazy

  • release_converges_test
  • stale_link_recovers_test
  • rejection_storm_reported_test

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á.

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

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