[Feature] Let the Workbench smoke suite run in parallel again

Aperta
#644 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
64/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Inizia da workbench-smoke.yml:376 e src/vip_tests/workbench/conftest.py, in particolare oidc_login_lock e _silent_sso_signin. Traccia quindi il percorso di accesso con password di vip.toml generato, poi usa un'esecuzione di dispatch di full-tier per verificare gli accessi simultanei prima di rimuovere -n 0 e aggiornare il commento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement team: workbench

workbench-smoke.yml:376 runs the suite with -n 0, disabling the -n auto --dist loadgroup default from pyproject.toml. The nightly's test step is the dominant cost of that workflow, measured between 475 and 686 seconds against a 14.3 minute median for the whole run, so restoring parallelism here is the largest single wall-clock win available in CI.

The comment above it explains the choice: the Docker Workbench returns "Temporary server error" when multiple workers attempt concurrent logins. That reasoning is now only half true. The -n 0 dates from the change that first enabled xdist. A cross-worker login lock landed later, in the change titled "parallelize tests instead of forcing serial", which is exactly the problem the comment describes.

The catch is that the lock does not cover this workflow's login path. oidc_login_lock is applied only inside _silent_sso_signin in src/vip_tests/workbench/conftest.py, which is the OIDC round-trip, while the smoke writes provider = "password" into its generated vip.toml. So the password login the smoke actually performs is genuinely unserialized, and simply deleting -n 0 today would likely reproduce the original error.

Suggested order of work: extend the existing lock to cover the password login path as well as the OIDC one, confirm on a dispatch run with the full tier that concurrent logins no longer error, and only then remove -n 0 and update the comment. Doing it in that order keeps a green nightly at every step.

Lingua principale
Python
Stelle
8
Fork
1
Merge medio
18h 35m
PR unite (30g)
28

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di posit-dev/vip

Tutte le issue di posit-dev/vip

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.