[CI Failure] Flaky: VS Code extension dynamic debug configuration E2E teardown fails with EBUSY resource busy/locked on Windows
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
## Build Information
Build: https://github.com/microsoft/aspire/actions/runs/35132956836
Build error leg or test failing: Tests / Run VS Code extension E2E tests / VS Code extension E2E (Windows, dynamic-debug-configuration) / `Aspire dynamic debug configuration E2E "after each" hook for "re-resolves the selected AppHost by dynamic configuration name in duplicate-alias workspaces"`
Pull request: #20176
## Classification Analysis
EBUSY on rmdir during test teardown is a well-known Windows file-locking race condition (a lingering process handle briefly holds the directory), not caused by any file changed in this PR.
## Failure Information
Test output
Error:
Dynamic debug configuration E2E teardown failed.
1. Error: EBUSY: resource busy or locked, rmdir 'C:\Users\runneradmin\AppData\Local\Temp\aev-YUBZdw\workspace\.e2e-dynamic-debug\first'Stack Trace:
AggregateError: Dynamic debug configuration E2E teardown failed.
1. Error: EBUSY: resource busy or locked, rmdir 'C:\Users\runneradmin\AppData\Local\Temp\aev-YUBZdw\workspace\.e2e-dynamic-debug\first'
at runE2eTeardown (out\test-e2e\test-e2e\helpers\fixtures.js:217:15)
at async Context.<anonymous> (out\test-e2e\test-e2e\dynamicDebugConfiguration.e2e.test.js:62:9)
## Description
Flaky: VS Code extension dynamic debug configuration E2E teardown fails with EBUSY resource busy/locked on Windows
**Type**: flaky-test
## Occurrences
| Date | Build | Job | PR |
|------|-------|-----|----|
| 2026-09-16 | [35132956836](https://github.com/microsoft/aspire/actions/runs/35132956836) | Tests / Run VS Code extension E2E tests / VS Code extension E2E (Windows, dynamic-debug-configuration) | #20176 |
Contributor guide
Research direction
Start by reading the teardown at test-e2e/test-e2e/helpers/fixtures.js:217 and the dynamic-debug E2E setup and cleanup in test-e2e/test-e2e/dynamicDebugConfiguration.e2e.test.js. Reproduce the Windows E2E failure if possible and trace which process or handle keeps the workspace directory busy. Done means teardown reliably removes the directory without EBUSY failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100