Debugging with shortly-lived subprocesses gives 'Server disconnected unexpectedly'

Abierto
#1,912 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
linux, python, vscode

Línea de trabajo

No se nombra ningún archivo fuente ni ninguna prueba. Empieza reproduciendo el caso de subproceso de corta duración del issue con subProcess: true en launch.json en Windows 11 con Debian 12 bajo WSL2 y, después, sigue el manejo que hace debugpy de la conexión y desconexión de subprocesos. Se considera terminado cuando el reproducer finaliza sin mostrar “Server disconnected unexpectedly”, mientras el comportamiento normal del depurador permanece intacto.

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

Descripción

needs repro

VSCode shows an error when a subprocess in a program under debug exits very fast and the subProcess: true is defined in launch.json.

Image

The problem disappears when subProcess: false is set.
Reproduced on two different machines (W11+WSL)

When running the debugger via Powershell on Windows the problem is not reproducible. Only W11+WSL.

Environment data

  • debugpy version: v2025.8.0
  • OS and version: Windows 11 + Debian GNU/Linux 12 (bookworm) (WSL2) [Remote host]
  • Python version: 3.11.2
  • Using VS Code: 1.101.0

Actual behavior

When debugging a python program that spawns a subprocess that exits too quickly this error is shown:

Image

It happens randomly and is possibly related to the subprocess exiting while the debugger is being attached.

Expected behavior

Error does not pop up and the debugger handles such case gracefully.

Steps to reproduce:

  1. Run code that spawns another python subprocess - for example with a module that doesn't exist
import subprocess

def main():
    cmd = "python3 -m idontexist"
    for i in range(0, 20):
        process = subprocess.Popen(cmd.split())
        process.wait()

if __name__ == "__main__":
    main()
Lenguaje dominante
Python
Estrellas
2.5k
Forks
202
Merge medio
5 d 1 h
PR fusionados (30 d)
1

Guía de contribución

Abrir la guía de contribución

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/debugpy

Todos los issues de microsoft/debugpy

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.