Race condition in `provider.unit.test.ts` due to slow initial execution
Les mainteneurs répondent en général sous 5 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 58/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- typescript
- Domaine
- testing
Piste de recherche
Commencez par provider.unit.test.ts et la suite AttachProcessProvider, puis exécutez npm run test dans un environnement lent ou froid pour reproduire le timeout et l’échec du stub qui s’ensuit. C’est terminé lorsque le premier test se termine de manière fiable dans la suite et que les assertions Linux et macOS réussissent sans que des appels ne fuient entre les tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
📝 Description
We are observing intermittent test failures during the first run of the unit tests, specifically within the AttachProcessProvider suite.
The root cause appears to be a Race Condition triggered by slow environment startup:
- First Test Timeout: The first test case (e.g., Linux process list) takes longer than 2000ms to resolve (likely due to initial module loading or environment lag), causing a Mocha timeout error.
- Polluted Assertions: While the second test is running, the asynchronous call from the first (timed-out) test finally completes.
- Double Call Error: This causes the
sinonstub (likeplainExec) to record an extra call during the second test's execution context, leading to an assertion failure:expected plainExec to be called once but it was called twice(or similar).
586 passing (6s)
27 pending
2 failing
1) Attach to process - process provider
The Linux process list command should be called if the platform is Linux:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/vscode-python-debugger/vscode-python-debugger/testDir/out/test/unittest/attachQuickPick/provider.unit.test.js)
at listOnTimeout (node:internal/timers:585:17)
at process.processTimers (node:internal/timers:521:7)
2) Attach to process - process provider
The macOS process list command should be called if the platform is macOS:
AssertError: expected plainExec to be called once and with exact arguments
🛠 Steps to Reproduce
- Run tests in a resource-constrained environment (like a cold GitHub Actions runner or a slow local machine).
- Execute npm run test (or the equivalent test runner command).
- Observe that the first test fails with a timeout, and subsequent tests fail because stubs were called by the "ghost" of the previous failed test.
- Run the tests again immediately; observe that all tests (including the previously failed ones) now pass.
Environment: CI (GitHub Runner) https://github.com/ZA139/vscode-python-debugger/actions/runs/25676102630/job/75374288168 / Local Windows
- Langage dominant
- TypeScript
- Étoiles
- 181
- Forks
- 126
- Merge moyen
- 14 j 4 h
- PR mergées (30 j)
- 2
Préparer son environnement
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 microsoft/vscode-python-debugger
-
triage-needed
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
microsoft/vscode-python-debugger#1110 ·
Les mainteneurs répondent en général sous 5 jours
-
triage-needed
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
microsoft/vscode-python-debugger#1024 · 1 commentaire ·
Les mainteneurs répondent en général sous 5 jours
-
Update dependencies with actionable security alertsPeut-être pris @copilot-swe-agent l’a pris il y a 15 jours. Ouvertetriage-needed
microsoft/vscode-python-debugger#1111 · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 5 jours
-
Update vulnerable npm dependenciesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertetriage-needed
microsoft/vscode-python-debugger#1104 · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 5 jours
-
triage-needed
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
microsoft/vscode-python-debugger#1052 · 2 commentaires ·
Les mainteneurs répondent en général sous 5 jours
Toutes les issues de microsoft/vscode-python-debugger
Issues similaires
-
bug HemiStake
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
hemilabs/ui-monorepo#2413 ·
Les mainteneurs répondent en général sous 1 jour
-
component/ui framework/react kind/bug language/javascript
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
meshery/meshery#22216 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
type/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
company delete fails with 500 on any company that has activity (cost events, inbox dismissals)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
paperclipai/paperclip#14982 ·
Les mainteneurs répondent en général sous 1 jour
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
lingdojo/kana-dojo#31515 · 1 commentaire · 5 réactions ·
Les mainteneurs répondent en général sous 1 jour