Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

vsce-testing: orphaned `.drive-udd-*` dirs accumulate when a run never reaches teardown

Cerrado
#237 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 8 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
74/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
powershell, vscode
Área
testing, tooling

Línea de trabajo

Comienza en scripts/vscode-drive.psm1, en Start-VSCodeDrive, y compara después la correspondencia de liveness en Get-VSCodeWindow y Stop-VSCodeDrive. Verifica que la limpieza solo tenga como objetivo los directorios .drive-udd-* huérfanos, conserve los directorios pertenecientes a procesos activos y nunca recorra .drive-extensions/; revisa también el ciclo de vida de la unidad para comprobar la cobertura try/finally sugerida.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

Summary

Start-VSCodeDrive mints a uniquely-named user-data dir per launch, and Stop-VSCodeDrive deletes it. The happy path is correct. But when a run never reaches teardown — agent interruption, crash, killed session, an exception between start and stop — the dir is orphaned and nothing ever reclaims it.

Found while reclaiming disk space on a dev machine: 21 orphaned .drive-udd-* dirs, 10–30 days old, in .github/skills/vsce-testing/.

Evidence

scripts/vscode-drive.psm1:

# L166 - new dir per launch
$udd = Join-Path $harness (".drive-udd-" + [guid]::NewGuid().ToString('N').Substring(0, 8))

# L516 - cleaned ONLY via Stop-VSCodeDrive
Remove-Item $Ctx.Udd -Recurse -Force -ErrorAction SilentlyContinue

There is no sweep at start, and no try/finally guaranteeing teardown, so the cleanup is reachable only on the path that completes normally.

Impact

Low severity, unbounded growth. The 21 orphans totalled ~50 MB, but two of them were ~22 MB each — size depends on how far the VS Code instance got before dying, so a run that loaded the C# extension leaves a much bigger dir. On a machine running this skill regularly it grows without limit, and it is invisible because the dirs are gitignored (.gitignore:4).

Suggested fix

Defensive sweep in Start-VSCodeDrive: before creating the new dir, remove any existing .drive-udd-* in the harness whose leaf name does not appear in the command line of a live process. The liveness check already exists — Get-VSCodeWindow (L218) and Stop-VSCodeDrive (L513) both match CommandLine against the udd leaf, so the same predicate can be reused. That makes cleanup self-healing without risking a dir belonging to a concurrently running instance.

Worth pairing with a try/finally around the drive lifecycle so normal exceptions still hit teardown.

Notes

  • Pre-existing on main; unrelated to any open PR.
  • The .drive-extensions/ dir is a different case and should not be swept — it is an intentional cross-run cache of installed extensions.
Lenguaje dominante
TypeScript
Estrellas
14
Forks
4
Merge medio
6 d 14 h
PR fusionados (30 d)
8

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/WinAppVSCE

Todos los issues de microsoft/WinAppVSCE

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.