microsoft / microsoft/vscode-python-debugger
Subprocess return code is incorrectly returned
@eleanorjboyd đang làm issue này rồi.
Từ ngày 30/6/2025.
- Ngôn ngữ chính
- TypeScript
- Star
- 181
- Fork
- 126
- Merge trung bình
- 2 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 3
Mô tả
Type: Bug
Behaviour
It appears that if a python subprocess is called from a debugged process and fails, the return code of the subprocess is not correctly passed on to the caller.
Steps to reproduce:
Example code experiment.py:
import subprocess
import sys
proc = subprocess.run(
[sys.executable, "-mfred"],
check=False,
)
print(f"returncode: {proc.returncode}")
If run on the command line, this produces
$ /opt/bb/bin/python3.12 ~/experiment.py
/opt/bb/bin/python3.12: No module named fred
returncode: 1
If run via a launch config such as
{
"name": "Python Debugger: Experiment",
"type": "debugpy",
"request": "launch",
"program": "/home/ralexander72/experiment.py",
"console": "integratedTerminal"
}
The output is
$ cd /home/ralexander72/test ; /usr/bin/env /opt/bb/bin/python3.12 /bb/data/ralexander72/vscode-server/extensions/ms-python.debugpy-2025.8.0-linux-x64/bundled/libs/debugpy/adapter/../../debugpy/launcher 60207 -- /home/ralexander72/experiment.py
No module named fred
returncode: 0
Similarly, running with check=True produces an exception in the non-debugged case but apparent success when run via the debugger.
Adding "subProcess": false to the launch config produces the expected output, so presumably the problem is that the debugger is intercepting and debugging the subprocess (which is normally nice behaviour), but failing to pass on the correct return code after termination of the subprocess.
This is highly unexpected behaviour - could you please investigate?
Extension version: 2025.8.0
VS Code version: Code 1.101.1 (18e3a1ec544e6907be1e944a94c496e302073435, 2025-06-18T13:35:12.605Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Connection to 'ssh-remote+mydev' could not be established
Remote OS version: Linux x64 4.18.0-553.50.1.el8_10.x86_64
Remote OS version: Linux x64 4.18.0-553.50.1.el8_10.x86_64
- Python version (& distribution if applicable, e.g. Anaconda): 3.12.11
- Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Unknown
System Info
| Item | Value |
|---|---|
| CPUs | Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz (36 x 3000) |
| GPU Status | 2d_canvas: enabled canvas_oop_rasterization: enabled_on direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_graphite: disabled_off video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: enabled webnn: disabled_off |
| Load (avg) | undefined |
| Memory (System) | 127.80GB (95.16GB free) |
| Process Argv | --folder-uri vscode-remote://ssh-remote%2Bmydev/bb/mbige/mbig_u28868517/ws/nextstep |
| Screen Reader | no |
| VM | 0% |
Connection to 'ssh-remote+mydev' could not be established
| Item | Value |
|---|---|
| Remote | SSH: mydev |
| OS | Linux x64 4.18.0-553.50.1.el8_10.x86_64 |
| CPUs | Intel Xeon Processor (Cascadelake) (16 x 0) |
| Memory (System) | 93.89GB (78.18GB free) |
| VM | 0% |
| Item | Value |
|---|---|
| Remote | SSH: mydev |
| OS | Linux x64 4.18.0-553.50.1.el8_10.x86_64 |
| CPUs | Intel Xeon Processor (Cascadelake) (16 x 0) |
| Memory (System) | 93.89GB (78.18GB free) |
| VM | 0% |
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Đánh giá
Issue này chưa được đánh giá.