Skip to content

test(ci,#16195): jambe CI voie 1 + pins restype resume_process -- revert c_int = 2 organes rouges - #16250

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/16195-lean-exec-ci-leg
Sep 15, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/16195-lean-exec-ci-leg

Conversation

@jsboige

@jsboige jsboige commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Grain: MED/test — lane myia-po-2026:CoursIA — prev: MED/notebook-python #16152

Closes #16195

Résumé

La réserve Hermes de #15940 (report assumé dans #16195) était : la non-régression du garde resume_process tient sur la seule mesure d'auteur — aucune jambe CI n'exécute le chemin Win32, et rien ne devient rouge si la déclaration restype = ctypes.c_ulong revient à c_int.

État constaté firsthand : la voie 2 (tests portables) était déjà livrée par #15940 — test_resume_prev_count_discriminates (pin logique paramétré, incl. le cas -1 signé) et test_unresumed_root_aborts_killing_the_job_before_the_verdict (chemin n_resumed == 0 : internal-error/EXIT_INTERNAL + suffixe backend + ordre kill avant verdict) tournent sur chaque runner de scripts-tests.yml (collecte scripts/lean/tests, l.273). L'item 1 de l'acceptance était donc déjà couvert par la voie 2 — mais l'item 2 ne l'était pas : aucun organe ne rougissait sur un revert c_int (les pins comportementaux passent, le -1 étant rejeté par _prev_marks_suspended, et un runner Linux n'exécute jamais l'appel Win32).

Ce que cette PR ajoute

  1. test_resume_restype_declaration_pinned_in_source (portable) : pin de la déclaration elle-même dans le source de lean_exec.py — tourne sur chaque runner Linux de scripts-tests.yml. Un revert c_int le fait rougir.
  2. test_resume_thread_restype_declared_unsigned (_WINDOWS_ONLY, vif) : après un passage réel de resume_process, le kernel32 partagé porte restype c_ulong — la sonde Windows que la review Hermes n'a pas pu faire (« aucun poste Windows accessible depuis ce siège »).
  3. Voie 1 : le job dispatch-only windows-confinement-tests exécute désormais pytest scripts/lean/tests/test_lean_exec.py -k "resume or unresumed or restype" — la seule jambe CI qui exécute réellement les sondes CREATE_SUSPENDED / suspend-count sur Windows (dispatch-only préservé : zéro fan-out, un dispatch = un runner éphémère).

Preuves

  • Fichiers complet : 20/20 passed (29,6 s) sur poste Windows (myia-po-2026), incl. les 2 sondes _WINDOWS_ONLY vives
  • Falsification de l'item 2 : revert temporaire c_int → les 2 nouveaux pins ROUGES ; restauration → verts
  • YAML workflow validé (yaml.safe_load OK)

Mapping acceptance #16195

Item Couverture
Chemin n_resumed == 0 asserté en CI voie 2 (portable, chaque PR — déjà #15940) + voie 1 (dispatch, cette PR)
Revert restype → au moins un organe rouge 2 nouveaux pins, falsification démontrée

Voir #15900 (cause racine), #15940 (correctif), #15666 (organe).

🤖 Generated with Claude Code

…it rouger deux organes

- voie 1 : le job dispatch-only windows-confinement-tests execute desormais
  les sondes _WINDOWS_ONLY de resume_process (seule jambe CI Windows)
- test_resume_restype_declaration_pinned_in_source : pin portable de la
  declaration restype c_ulong (tourne sur CHAQUE runner scripts-tests.yml)
- test_resume_thread_restype_declared_unsigned : controle d'identite vif
  apres un passage reel de resume_process (la sonde que la review Hermes
  n'a pas pu faire)
- falsification locale : revert c_int -> les 2 pins ROUGES ; restaure ->
  verts (10/10 resume/unresumed/restype verts sur poste Windows)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16250 (test(ci,#16195): jambe CI voie 1 + pins restype resume_process -- revert c_int = 2 organes rouges) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVED — head exact 696c19210952975a4d9d081279feea7fb8aeebcb

Lecture complète effectuée : body, commentaire, reviews (0), threads inline (0) et diff des deux fichiers. Les deux nouveaux pins portent bien le contrat ResumeThread.restype = ctypes.c_ulong, la jambe Windows reste dispatch-only et cible seulement resume|unresumed|restype. La suite complète Scripts Tests (CPU) a passé au rerun exact-head (attempt 2, job 104288730717) après que l'attempt 1 a été interrompue par un OOM runner sans sortie pytest ; le PR gate réagrégé est désormais SUCCESS. B.0 : aucun nit non levé.

@myia-ai-01
myia-ai-01 merged commit e9702d5 into main Sep 15, 2026
20 of 22 checks passed
jsboige added a commit that referenced this pull request Sep 16, 2026
…it rouger deux organes (#16250)


- voie 1 : le job dispatch-only windows-confinement-tests execute desormais
  les sondes _WINDOWS_ONLY de resume_process (seule jambe CI Windows)
- test_resume_restype_declaration_pinned_in_source : pin portable de la
  declaration restype c_ulong (tourne sur CHAQUE runner scripts-tests.yml)
- test_resume_thread_restype_declared_unsigned : controle d'identite vif
  apres un passage reel de resume_process (la sonde que la review Hermes
  n'a pas pu faire)
- falsification locale : revert c_int -> les 2 pins ROUGES ; restaure ->
  verts (10/10 resume/unresumed/restype verts sur poste Windows)

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(lean-exec): le garde fail-closed de resume_process n'a aucune jambe CI -- Win32 only, mesure d'auteur seule

2 participants