I2882 — Vzdálený derive staví jen uvnitř svého vlastního adresáře běhu
Vzdálený skript derive offloadu připíná sestavovací adresář cargo, nejen jeho cílový adresář, k běžnému adresáři `<shared>-<tag>`, který jeho pasti odstraňují, takže nic, co vzdálený derive zkompiluje, nepřežije derive na hostiteli, ať uspěje, nebo selže.
HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně
Součást development-runtime — The runtime has a development surface.
Cíl
Vzdálený skript derive offloadu připíná sestavovací adresář cargo, nejen jeho cílový adresář, k běžnému adresáři `<shared>-<tag>`, který jeho pasti odstraňují, takže nic, co vzdálený derive zkompiluje, nepřežije derive na hostiteli, ať uspěje, nebo selže.
Proč
2026-10-18 lundra dvakrát dosáhla 0 bajtů volného místa. Checkout deklaruje build-dir = {cargo-cache-home}/build-shared/majordomus, takže samotný CARGO_TARGET_DIR offloadu držel každý mezivýsledek ve sdíleném build adresáři hostitele (87 GB, z toho 48 GB llvm-cov-target), mimo to, co odstraňují pasti běhu; vlastník nařídil řešit místo na disku systémově na každém stroji.
Aktuální stav
offload/run.rs DERIVE exportuje CARGO_TARGET_DIR=$private a odstraňuje $private při EXIT/HUP/INT/TERM; CARGO_BUILD_BUILD_DIR se dědí, takže deklarovaný sdílený build-dir dostává meziprodukty.
Cílový stav
DERIVE exportuje CARGO_BUILD_BUILD_DIR=$private vedle CARGO_TARGET_DIR; unit test spustí skutečný skript lokálně s návnadovým adresářem buildu v prostředí a drží, že derive viděl jen adresář běhu, že nic nepřistálo v návnadě a že adresář běhu po úspěšném i po neúspěšném derive zmizí.
Rozsah
- apps/majordomus-cli/src/offload
- docs/OFFLOAD.md
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Adresáře buildu a targetu vzdáleného derive jsou oba adresářem běhu, ať prostředí volajícího jmenuje jakýkoli adresář buildu
- Adresář běhu se odstraní po derive, který uspěl, i po tom, který selhal (exit 10)
- Do adresáře buildu pojmenovaného prostředím volajícího se nezapisuje nic
Validace
- cargo test --lib -- offload::run::tests::a_remote_derive_builds_only_inside_its_run_directory_and_removes_it
- majordomus plan validate
Požadované důkazy
- offload_run_dir_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| offload_run_dir_test | ci | cargo test --lib -- offload::run::tests::a_remote_derive_builds_only_inside_its_run_directory_and_removes_it | ok in validate run 39192952944, job rust (2) 117890228077 (3482 passed, 0 failed), every job green at master dd4c0a87cba, which contains the fix a4c19d60f0c | 9a5a9b7 |
Časová osa
- zahájeno
- 2026-10-20T15:29:44Z
- ověřeno
- —
- dokončeno
- 2026-10-20T15:30:47Z
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/I2882.yaml. Přečtěte ho zpět pomocí majordomus plan show I2882.