Runaway copilot-file-search thread consumes CPU and unbounded disk while session is idle
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
Version: GitHub Copilot CLI 1.0.83-3 on Ubuntu 24.04
Summary
While a copilot --yolo session reports its status as idle, an internal copilot-file-search thread can continue running indefinitely, pinning a CPU core and writing an unbounded per-process diagnostic log under ~/.copilot/logs/ until the disk fills to 100%.
Observed behavior
- The session's foreground process stays alive and its reported status is
idle, but the process is not actually idle at the OS level. - The internal
copilot-file-searchthread crawls/indexes the working directory at ~50% CPU and does not stop on its own. - The per-process diagnostic log in
~/.copilot/logs/grows continuously — observed rates around 8 MiB per 10 seconds — with no apparent size cap or rotation. Individual logs reached 6–22 GB before intervention. - On large or deeply nested directory trees, the crawler appears to get stuck (repeated traversal, symlink-loop-like behavior) rather than completing and going quiet.
Impact
- Root filesystem exhaustion (reached 100% used in the worst case), which affects the whole machine, not just the session.
- Sustained CPU consumption for an ostensibly idle session.
Reproduced
Seen multiple times in a 24h span, all with the identical signature: idle status + active copilot-file-search thread + a continuously growing diagnostic log under ~/.copilot/logs/. Killing the process is the only thing that stops it; the log then has to be deleted manually to reclaim space.
Expected behavior
- File-search/indexing should terminate (or throttle) when the session is idle.
- The crawler should detect and break traversal loops instead of looping indefinitely.
- Diagnostic logs should be size-capped or rotated so a single session cannot exhaust the disk.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el comportamiento de una sesión inactiva e inspecciona la actividad de copilot-file-search junto con los archivos por proceso en ~/.copilot/logs/. Determina si la exploración se repite y si los registros crecen sin límite. Se considera terminado cuando las sesiones inactivas detienen o limitan la indexación, los bucles de exploración terminan y los registros de diagnóstico tienen un límite o se rotan.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- linux
- Área
- cli, observability, performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 48/100