跳转至

排障记录

读者:遇到问题回来查"上次怎么解决的"的人。 前置:无。 读完能做什么:认出这三类问题的现象,按上次的办法处理。 环境锚点:Slurm 集群 + Virtuoso IC617;核实日期 2026-10-13。

三十秒版

三个真事:srun 一加 Spectre 就崩(加 --mpi=none);ADE-XL 改完不落盘(要退出 Virtuoso); 家目录那堆 CDS.log* 是"没先 cd"的产物。每节都写了时间线、判断依据、和下次怎么办。


一、2026-10-05 加了 srun,Spectre 启动即死

时间线

2026-10-05 首次派发作业后,作业能被 Slurm 拉起,但 spectre 一启动就死; 当天加 --mpi=none 后恢复,并用 Interactive.12 的 6 个点端到端复验通过。已闭环。

影响

阶段 2 的全部仿真点都跑不起来——不是某个点的问题,是整条派发链不通。

我按顺序做了什么

  1. 看作业状态:squeue 里作业被拉起,但很快结束 → 说明问题在作业内部,不在调度。
  2. 看 spectre 日志:末尾是 [cli_0]: Unable to write to PMI_fd、Fatal error in MPI_Init → 指向 MPI 初始化。
  3. 判断:这些是 srun 注入的环境变量(PMI_*)引起的,Spectre 并不需要 MPI。
  4. 试 srun ... --mpi=none(不注入 MPI 变量)→ 通过。
  5. 端到端复验:6 个点全部完成、跨 .18/.19 两台计算节点。

结论与依据

根因:本集群 Slurm 的 MpiDefault = pmi2(出厂默认是 none),所以不加 --mpi=none 就会注入 PMI_*。 证据:spectre 日志里的 PMI_fd 报错行 + 集群 slurm.conf 的该项。

确定程度

  • 已确认:--mpi=none 可解决,且 6 点端到端复验通过。
  • 未确认:无。

下次怎么办

在派发 wrapper 里固化 --mpi=none,不必每次手加。日常自查见 cheatsheet.md。


二、2026-10-12 改了设置,它没存下来

时间线

2026-10-12 在 ADE-XL 里改了保存设置,重跑却发现改动没生效;同日还遇到"脚本画图没反应"。 两次都当场定位。已闭环。

影响

改动没落盘 → 下一次跑的还是旧设置(这次是白名单,白配了); 脚本静默失败 → 以为改了其实没改,浪费一轮。

我按顺序做了什么

现象 A:ADE-XL setup 改动不落盘

  1. 改完设置后核对 data.sdb:mtime 和体积都没变,且旁边有 data.sdb.cdslck → 有进程占着。
  2. 判断:setup 改动必须退出 Virtuoso 才写盘。
  3. 退出时按提示选:"原理图"选不保存、"ADE XL"选保存。
  4. 复验:data.sdb 的 mtime/体积变了,test_states/.../outputs 内容更新。

现象 B:GUI 持锁导致无头重建静默失败

  1. 无头脚本跑完返回 SKILLRC=255,且不产生新 log。
  2. 看目录:有 sch.oa.cdslck.<host>.<pid> → 说明这个 cell 的编辑窗口正开着(GUI 主程序开着没关系)。
  3. 请用户关掉该 cell 的编辑窗口后重跑 → 正常。
  4. 复验:stat -c '%y %U:%G' sch.oa 的 mtime 更新、属主 rain01:design。

结论与依据

  • 根因 A:ADE-XL 用 data.sdb 存 setup,进程持有锁时不会写盘。
  • 根因 B:GUI 打开 cellview 时创建 cdslck 锁文件,此刻删除/重建全部不生效。
  • 证据:两个 .cdslck 文件的存在与消失,以及对应操作前后文件 mtime 的变化。

确定程度

  • 已确认:两处锁的存在与效果。
  • 未确认:不同 Cadence 版本是否表现一致。

下次怎么办

  • 改 ADE-XL 设置后,一律退出 Virtuoso,且退出时选保存 ADE XL。
  • 动手前先查锁:ls design/pll45/*/schematic/*.cdslck。

三、2026-10-13 家目录怎么这么乱

时间线

2026-10-13 观察到家目录顶层有散件;当天定性完毕。不是故障,是习惯问题。

影响

不致命,但家目录混着历史和误产生文件,容易误判"哪个文件有用"。

我按顺序做了什么

  1. 列出来看:CDS.log*、probe*、一个名为 1 的文件、还有 ~/cadence(77 M)。
  2. 逐个定性:
  3. CDS.log*:Cadence 启动日志,落在启动时的当前目录——说明当时是在家目录启动的。
  4. probe*:早期调试产物的落错位置。
  5. 名为 1 的文件:某次 shell 重定向写错产生的。
  6. ~/cadence:存储落层改造之前的默认结果目录残留。
  7. 结论:全部是旧产物,养成"先 cd 项目目录再启动"的习惯后不会再产生。

结论与依据

根因:工具在哪个目录启动,日志就落在哪个目录。 证据:CDS.log 的存在位置与启动目录一致;~/cadence 与旧默认落点 ~/cadence/simulation 吻合。

确定程度

  • 已确认:这些文件的来源类别。
  • 待观察:删除后是否还有别的机制再生成(目前判断不会)。

下次怎么办

  • 所有工具都在项目目录内启动:先 cd /projects/design/rain01/proj1 再 virtuoso。
  • 日志与结果规范见 map-roadmap.md 与 concept.md。

来源:/home/rain/Documents/eda_tools_ins/design/docs/kb/incident.md | 最后更新:2026-10-13 00:47(由 build/sync.py 同步,请勿在站点侧修改)