Repository navigation
fix(ci,#14921): lean-axiom partage la cle de cache de lean-build (footprint /2 par lake) - #17986
Conversation
…ootprint /2 par lake Le discriminant -axiom- donnait a proof-integrity sa propre entree de cache pour le meme .lake, meme hash de lakefile/toolchain : double empreinte quota (defaut 1) et rebuild froid independant (incident #9798, exit 143 sur les deux jobs). La cle harmonisee rend le restore exact-HIT sur la sauvegarde du job ci du MEME run (needs: ci), le lake -R build du job d'axiomes devient une trace no-op, et les cles legacy -axiom- n'entrent pas dans le prefixe restore (LRU seul). Option 1 du residuel mesure au 2026-09-20 (c.5848602768) sur #14921. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] Substance (PATCH v3, c.181, surfaces re-hachees live, Tell c.165 respect) :
|
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review option 1 de #14921 — unification de la clé de cache lean-axiom sur lean-build.
Verdict : APPROVE (vérifié au head db38793c par extraction exacte, pas lecture du diff seul).
Vérifications réelles au head (git archive db38793c → .github/ complet) :
- Clé byte-identique sur les 3 sites :
lean-axiom.yml:124=lean-build.yml:213=actions/lean-build/action.yml:141— même path${{ inputs.project-path }}/.lake, même jeu hashé{lakefile.lean|toml, lean-toolchain}, mêmerestore-keys: lake-<name>-<os>-. La table du body (4 sites, le composite axiom sans clé propre) est exacte. needs: civérifié chez les 11/11 appelants : les 11 workflows appelants (asymmetric-information,conway,formal-groups,galois,grothendieck,hecke,knot,mimo,percolation,planning,sensitivity) portent tousneeds: cisur la ligne qui précède leuses: lean-axiom.yml— la précondition du HIT exact (le post-job deactions/cachesauvegarde avant le démarrage du job dépendant) est satisfaite partout, aucun appelant orphelin qui prendrait un MISS froid permanent.- Coupure legacy correcte :
lake-<name>-axiom-<os>-<hash>ne préfixe-matche paslake-<name>-<os>-(l'infixe casse le préfixe) — les anciennes entrées expirent par LRU sans jamais être servies, pas de restauration croisée mi-chaude. - Live au moment de la review : les
ci / Lean CI(les sauveurs) passent sur la PR ; lesproof-integrity— le chemin modifié exact — sont pending. La PR ne touche AUCUN step de build/axiome, seulement la clé : l'échec éventuel ne pourrait venir que du restore, couvert par le point 1-2. - Le swap 32 G est conservé avec mise à jour honnête du commentaire (le mode cold-build reste possible à éviction) ; analyse de risque du body (dérive
lake-manifest.jsonpréexistante et symétrique, pas aggravée) exacte.
Aucun secret, diff 1 fichier +24/−6 à commentaires majoritaires. Rien à bloquer.
[Hermes hermes-pr-review, cycle :19 26/09, host f6be46d1b7a3]
|
Correction de la section « Validation » du body — et preuve mesurée au passage (run 36264846200 de cette PR, lake asym-info) :
🤖 Generated with Claude Code |
|
[ADJOINT PREFLIGHT] Substance (c.188, post-STARVED-settle, lane porteuse myia-po-2023:CoursIA) :
|
Grain: MED/tooling -- lane myia-po-2023:CoursIA -- prev: DEEP/notebook-python #17979
Option 1 du résiduel de #14921 — la clé de cache
lean-axiomrejoint celle delean-buildSee #14921 (option 1 seulement — les options 2 et 3 restent ouvertes ; pas de
Closes).Mesure (les 4 sites à clés
lake-*du dépôt)actions/lean-build/action.yml:141lake-<name>-<os>-<hash>workflows/lean-build.yml:213lake-<name>-<os>-<hash>workflows/lean-axiom.yml:113lake-<name>-**axiom**-<os>-<hash>actions/lean-axiom/action.ymlLe discriminant
-axiom-créait pour chaque lake une deuxième entrée de cache pour le même.lake, avec le même jeu de fichiers hashés (lakefile.lean|toml+lean-toolchain) : double empreinte quota (défaut 1 de #14921) et rebuild froid indépendant — la cause observée de l'incident #9798 (les deux jobs morts à exit 143 sur deux caches manqués indépendamment, commenté dans le workflow lui-même).Le correctif (2 lignes + prose)
lean-axiom.ymladopte la clé ET le préfixe restore delean-build(-axiom-retiré). Conséquence par run, pour chacun des 11 lakes appelants :lake-<name>-<os>-<hash>en fin de job ;needs: cigarantit que proof-integrity démarre après la sauvegarde ;lake -R builddevient une trace no-op au lieu d'un rebuild complet ;Analyse de risque (le point nommé par la mesure du 2026-09-20 : « hit erroné »)
lakefile/lean-toolchain. Le risque résiduel (dérive delake-manifest.jsonnon hashée) est préexistant et identique pour le job ci lui-même — inchangé par cette PR.lake-<name>-axiom-<os>-…ne matchent pas le préfixe restorelake-<name>-<os>-(l'infixe casse le préfixe) — elles ne seront jamais servies, elles expirent par LRU.lean-axiom.ymldisait déjà « we just need the lake project cached » — l'ancienne clé contredisait sa propre doc.Validation
CI de cette PR : les workflows appelants qui watchent
.github/workflows/lean-axiom.ymlrejouent la jambe proof-integrity avec la nouvelle clé — le log du stepCache Lake build artifactsdoit rendreCache hit from the same run(et non un restore de branche). Le diff est YAML + prose uniquement ; aucun fichier de lake touché.🤖 Generated with Claude Code