shell-escape.test.ts: Windows PowerShell child times out in the cmd-Session powershell test despite the warm-up
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- github-actions, powershell, typescript
Piste de recherche
Start with lib/src/lib/shell-escape.test.ts around lines 181–182 and inspect the warm-up added in #1532 and the failure context in #1564. On a Windows runner, time the listed PowerShell script pieces for each Session kind to locate the remaining cost. Done means identifying and addressing the cmd-kind delay, then confirming the test completes reliably without raising the per-shell timeout.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
shell-escape.test.ts › reads a cmd Session's paths back literally in powershell timed out again on main after the ConvertTo-Json warm-up from #1532 landed. In run 41778763200 (Standalone Platform Check (windows-latest), head 6c252bf967ba), argvThrough's spawnSync of powershell.exe returned ETIMEDOUT at its 10s bound (shell-escape.test.ts:181-182). The next run on main passed.
The warm-up ran and reported a warm shell. Its first start took 22,940 ms, against 2.4–4.4s on the other post-#1532 runs below, and its second took 437 ms, so the step exited at its sub-second threshold. The Windows PowerShell 5.1 children around the failing test were fast:
| Test (in run order) | Time |
|---|---|
runs native PowerShell startup code and exits |
524 ms |
passes accepted paths through dor.cmd from powershell |
480 ms |
reads a cmd Session's paths back literally in powershell |
10,048 ms, ETIMEDOUT |
reads a powershell Session's paths back literally in powershell |
572 ms |
A cold process start doesn't explain this, and neither does a first module load the warm-up skips: the 5.1 children on either side of the failing test, the later one also running ConvertTo-Json, took about half a second.
On the eight main runs since #1532 whose Windows job passed (41578300835 through 41711627101), the failing test took 697–799 ms each time, while reads a powershell Session's paths back literally in powershell took 303–389 ms. #1532 cut it from the 1.2–3.1s seen before, but some first-use cost the warm-up doesn't reach is still left. On a runner as slow as this one, that cost alone doesn't obviously add up to 10s (≈400 ms × 5–10 ≈ 2–4s). So either the remaining cost grows faster than the runner's slowness, or this run hit a separate stall. This run doesn't settle which.
In #1464, nedtwigg ruled out raising the per-shell bounds ("raising either bound again would only move the line"), so that isn't proposed here.
Possible next diagnostics (need a Windows runner)
- Find what the cmd-kind 5.1 child pays that the warm-up and the powershell-kind child don't. Its script is the same
argvfunction; only the typed arguments differ (the cmd-kind escapes ofWINDOWS_LITERALandWINDOWS_REFUSED). Timing each piece of that script in the warm-up step ([Console]::OutputEncoding, the function definition,ConvertTo-Json -Compress -InputObject @(...)over those strings) on a PR's Windows job would show which one carries the ~400 ms. - If the cost tracks script content rather than process start (for example, a first scan of a new script block), a warm-up that runs the exact
argvThroughscript for each Session kind would pay it before the tests. The check: on that PR's job, the cmd-kind test should drop to about the powershell-kind test's ~300 ms.
Cause of a failure tracked in #1564.
- Langage dominant
- TypeScript
- Étoiles
- 5
- Forks
- 1
- Merge moyen
- 11 h 4 min
- PR mergées (30 j)
- 434
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de diffplug/dormouse
-
security
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 18/100
diffplug/dormouse#1572 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Red team: November 2026Ouvertered-team
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 5/100
Les mainteneurs répondent en général sous 1 jour
-
review-runs-tracking: 2026-11Ouvertereview-runs-tracking
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 5/100
diffplug/dormouse#1492 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
diffplug/dormouse#1443 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de diffplug/dormouse
Issues similaires
-
Cleanup SetupPeut-être pris @AlexanderKaran l’a pris aujourd’hui. Ouvertedocumentation enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
e18e/framework-tracker#769 ·
Les mainteneurs répondent en général sous 1 jour
-
fix(docker): correct stale --db-path comments in fetch/git Dockerfiles and clarify git READMEOuvertebug v2
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
modelcontextprotocol/servers#5483 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
XiaomiMiMo/MiMo-Code#2783 ·
Les mainteneurs répondent en général sous 1 jour
-
area: web bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
kinqsradio/orbyn-engineering#227 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
joeldesante/TurfBuilder#258 ·
Les mainteneurs répondent en général sous 1 jour