Bug Description / 错误描述
启动 Magicraft(AppID 2103140)时,Proton 的 x86_64 Python 尚未进入 Wine,进程卡在关闭文件描述符的循环中。宿主侧跟踪反复观察到:
getdents64(3, ...)
fcntl(4, F_DUPFD_CLOEXEC, 0) = 5
close(4)
...
fcntl(5, F_DUPFD_CLOEXEC, 0) = 4
close(5)
LAT 为 prctl_mm_exe_fd 保留的身份 fd 会被 Python 的 close_fds 扫描到。guest_exe_identity_relocate() 随后把它复制到另一个 fd;Python 再次扫描并关闭新 fd,形成 4 与 5 的无限迁移。
Environment Information / 环境信息
OS: [e.g., Loongnix, etc.]
操作系统: Debian 13
Kernel Version: [e.g., 5.4.0, etc.]
Linux 内核版本: Linux debian 6.12.107+deb13-loong64
GCC Version: [e.g., 9.3.0, etc.]
GCC 版本: 14.2.0
GLIBC Version: [e.g., 2.31, etc.]
GLIBC 版本: 2.41
LAT Version / Commit Hash: [e.g., 1.6.0, abc1234, etc.]
LAT 版本号 / 提交 Hash: 310b34e
Steps to Reproduce / 重现步骤
以 LAT x86_64 启动 Proton 运行时的 Python,并由它创建子进程
import subprocess
subprocess.run(["/bin/true"], check=True)
单独运行 Python 正常;加入 subprocess.run() 就稳定卡住
Expected Behavior / 预期行为
以 LAT x86_64 启动 Proton 运行时的 Python,并由它创建子进程,能够正常返回。
Actual Behavior / 实际行为
No response
Screenshots or Logs / 截图或日志
No response
Severity / 严重性
Medium / 中
Additional Information / 附加信息
No response
Bug Description / 错误描述
启动 Magicraft(AppID 2103140)时,Proton 的 x86_64 Python 尚未进入 Wine,进程卡在关闭文件描述符的循环中。宿主侧跟踪反复观察到:
LAT 为
prctl_mm_exe_fd保留的身份 fd 会被 Python 的close_fds扫描到。guest_exe_identity_relocate()随后把它复制到另一个fd;Python 再次扫描并关闭新fd,形成 4 与 5 的无限迁移。Environment Information / 环境信息
OS: [e.g., Loongnix, etc.]
操作系统: Debian 13
Kernel Version: [e.g., 5.4.0, etc.]
Linux 内核版本: Linux debian 6.12.107+deb13-loong64
GCC Version: [e.g., 9.3.0, etc.]
GCC 版本: 14.2.0
GLIBC Version: [e.g., 2.31, etc.]
GLIBC 版本: 2.41
LAT Version / Commit Hash: [e.g., 1.6.0, abc1234, etc.]
LAT 版本号 / 提交 Hash: 310b34e
Steps to Reproduce / 重现步骤
以 LAT x86_64 启动 Proton 运行时的 Python,并由它创建子进程
单独运行 Python 正常;加入
subprocess.run()就稳定卡住Expected Behavior / 预期行为
以 LAT x86_64 启动 Proton 运行时的 Python,并由它创建子进程,能够正常返回。
Actual Behavior / 实际行为
No response
Screenshots or Logs / 截图或日志
No response
Severity / 严重性
Medium / 中
Additional Information / 附加信息
No response