进程随机冻结,读取 /proc/pid/environ 时卡住

进程随机冻结,读取 /proc/pid/environ 时卡住

所以我的电脑在很多方面都表现得很奇怪,这可能与硬件问题有关,也可能无关。这个问题是关于这种现象的可重现症状,我正在尝试调查。

当我运行一些计算密集型作业时,例如尝试使用 gcc 编译大型软件项目或使用 PyTorch 进行 CPU 训练,某个进程偶尔会卡住。当发生这种情况时:

  1. 流程冻结
  2. 发送终止信号不会产生任何效果
  3. top显示其状态为D,uninterruptable_sleep:
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                         
   3513 ---      20   0   59788  20992  15360 D   0.0   0.0   0:00.01 cc1plus                                                                                                                                                                                         
  1. htop或KDE 系统监视器等工具ps无法启动,而是冻结
  2. 正在播放的strace ps节目
openat(AT_FDCWD, "/proc/3513/environ", O_RDONLY) = 4
read(4, 

作为卡住的系统调用

  1. 事实上,这样做cat /proc/3513/environ会冻结终端。

我发现恢复正常的唯一方法是重新启动我的电脑。

任何进一步的调试线索都将不胜感激。谢谢!

系统信息

软件:Manjaro Linux,内核 6.4.6,但可以在其他发行版/内核/gcc 版本上重现。

硬件:

Processors: 32 × 13th Gen Intel® Core™ i9-13900K
Memory: 62.6 GiB of RAM
Motherboard: MPG Z790 EDGE WIFI (MS-7D91)

为了检查硬件问题,我运行了 memcheck86+、IPDT 和 stress-ng,但没有发现任何问题。

相关内容