Files
DCTS/docs/troubleshooting.md
T
fmq f2700031ce feat(all): seed_step_stab 稳定化种子链与同族种子轮换、ladder/自适应 Teff/丰度轴延拓三级回退与梯级种子入库复用、热启动首末比豁免、workflow 完成翻转回退链阻塞修复、大气收敛权威统计与 M14 回填
收敛攻坚(81/400 失败点根因与实测,见 docs/failed81_cno_seed_popzer_dpsilg_2026_08_18.md):
- runner: 新增 seed_step_stab 策略链——同物理族(同 Teff/logg/logHe)CNO 邻居种子
  + DPSILG=3.0 λ 算子欠松弛 + POPZER=1E-10 微布居置零(联动 POPZR2/RADZER 同值
  + NITZER=1),针对 20kK He 富大气 He I/II 电离前沿布居极限环
- runner: 三级链内延拓回退(主链与 nl_direct 全败后自动触发):
  · 固定 ladder 步进——plan_ladder_steps 按归一化间隔选轴,Δlogg≤0.25/ΔTeff≤2.5kK,≤4 步
  · 自适应 Teff 延拓——步长 1250K 起、成功 ×1.5 恢复、失败二分至 25K 折叠墙,≤48 步
  · C/N 丰度轴延拓——高温域(Teff>30kK)专用,严格同族种子沿 C(优先)/N 轴 0.2 dex 起步
  延拓阶段 NITER 下限提至 300(慢收敛 waypoint 迭代饥饿误判修复)
- runner: 稳定化多档回退(DPSILG/POPZER 三档互补,联合回收 41/65);
  域门控 Teff≤30kK——高温高金属域实测旋钮致散(17 拍爆至 4e16),域外跳过
- 梯级种子持久化: 收敛中间模型登记 ladder_seeds 随上报落 server seeds 表
  (任务失败也上传,合成名 _ladder 与真实网格点零冲突),簇内相邻失败点自动复用

调度与执行:
- scheduler: 策略解析新增 seed_step_stab 臂——find_exact_family_seed_from_db 严格
  同物理族判定(不做 global 退化,防 ladder 中间种子 ΔTeff≤5000K 误命中),
  排除本点历史已用种子实现重试轮换;链在 stab 耗尽时轮换未试过同族邻居重派
- executor: seed_step_stab 补种子下载(漏列曾致 78 任务假失败,seed_nc 无 fort.8 崩溃);
  Teff>30kK 域外自动降级普通种子链

收敛判据:
- conv_check: 热启动豁免——首拍 max_relc<1(种子已近解)时首末比 1e3 判据数学上
  不可达,豁免后交五重物理硬门槛裁决(修复 nl_ladder 0.038→6e-4 物理全过被误杀);
  冷启动仍受判据门控

workflow 生命周期:
- workflows/tasks: 完成 flip 增加「未消费回退链」阻塞子句——failed 点策略链未耗尽
  或链尾 seed_step_stab 尚有未试过同族种子时不得置 completed(修复最后活跃点 cold
  失败上报抢先 flip、still_running 守卫拦截后续策略永不派发);按 failed_stage 归因
  (synspec 失败行只看 synspec 链,防 stale 审计副本永久卡死)+ json_valid 脏行防护

统计与前端:
- 统计新增权威口径 tlusty_converged(不按策略拆)与 seed_step_stab_converged 分项,
  前端详情页色带/概览卡消费权威总数并新增稳定化青色段(修复 stab 收敛点漏计,
  生产 9137/9216 差额);M14 迁移回填历史 completed 点的 tlusty_status

文档:
- 新增 failed81 POPZER/DPSILG 制胜配方根因分析、Windows 节点经跳板 RDP 运维手册;
  failed400 增补 ladder 生产化实现与第二轮 121 残点实测矩阵
2026-09-02 19:37:25 +08:00

65 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DCTS 故障排查与 FAQ (Troubleshooting & FAQs)
> 汇集 DCTS 计算过程中的常见故障、物理发散问题排查方法及节点恢复指南。
---
## 1. 物理计算发散排查 (TLUSTY Divergence)
### 现象 1`nl` 阶段出现 `DIVD ... BIG` 或 `NITER` 达到上限发散
- **原因**:初猜大气与当前网格点的真实 NLTE 大气物理状态相差过大,线性化半径无法收敛。
- **排查步骤**
1. 查看归档的 `conv.json`(节点端在 `DCTS_RESULT_DIR/<model_name>/conv.json`,服务端在 `DCTS_SEEDS_DIR/<model_name>/conv.json`):
```bash
cat data/seeds/<model_name>/conv.json
```
2. 失败任务的各阶段输入/日志/收敛诊断(`<name>.<label>.5/.6/.err/.nst/.7`、`_chmax*.9`)经白名单归档到节点 `result_dir`,供排错;沙盒 `task_*` 在结算后清理。
3. **解决方案**:确保服务端 `DCTS_SEEDS_DIR`(默认 `data/seeds`)下存有相近 $T_{\text{eff}}$ / $\log g$ 的已收敛 `.7` 种子。若 `tlusty_strategies` 含 `seed_step`,调度器会在失败回退时自动注入近邻种子重试(**Seed-Stepping** 种子步进)。
### 现象 2`lte` 阶段报错或瞬间终止
- **原因**:输入的物理参数超出了灰色大气基本假设或基础原子数据(原子能级/光致电离截面)损坏缺失。
- **排查步骤**
1. 验证 `data/` 目录中的 `ATO` / `ISO` 数据文件是否齐全。
2. 检查 `gen_input5` 生成的参数中 `TEFF` 是否小于 10000K 或大于 120000K。
---
## 2. 节点与网络故障 (Node & Network Issues)
### 现象 1Worker 节点提示 `Unauthorized: Invalid or missing authentication token`
- **原因**:该节点的专属 node token 已失效或被重发覆盖(节点鉴权不依赖任何环境变量,而是使用审批时下发的专属 token)。
- **解决办法**:删除节点本地 `runtime/.node_token` 文件并重启节点进程,使其重新免凭据提交注册申请,等待管理员在 Dashboard 审批授权后获取新 token。
### 现象 2:任务长时间处于 `Running` 状态没有进展
- **原因**:Worker 节点在计算中途遭遇断电、内存溢出(OOM)或僵死进程卡死。
- **自动恢复**:Master 服务端后台线程会在超过 `DCTS_STALE_SEC`(默认 21600 秒 / 6 小时,约为单任务超时的 3 倍缓冲)后自动将 `claimed` 态任务重置为 `pending` 放回队列。
- **手动恢复**:若需立即重置挂起任务,最稳妥的方式是重启 `server`(启动恢复逻辑会处理卡死态)。若必须直接操作队列库,注意队列表的正确列名与状态:
```sql
-- task_queue 表的状态列是 status,领用列是 claimed_by_node_id(非 assigned_node);
-- 领用中的任务是 status='claimed'(非 'running')。
UPDATE task_queue SET status='pending', claimed_by_node_id=NULL
WHERE status='claimed';
```
### 现象 3:网络抖动或后端滚动重配下提示 `向服务端上报任务 ... 结果失败`
- **原因**:在较长时效(如1-2小时)的运算完结回传一瞬间,Server 恰遇热更重启或遭遇防火墙短暂会话剔除。
- **容灾机制**:Worker 内置了超强的 8 轮指数级自适应退避长跳上报防护(跨度可自 1s 到 60s 顺次延迟,支撑 2 分钟以上的长时断裂耐受窗口);上报失败时产物仍会**尽力归档**到本地 `DCTS_RESULT_DIR/<model_name>/`(白名单保留科学产物),沙盒随后清理。若真正超出了总重试界限,可从 `result_dir/<model_name>/` 直接调出最终收敛物(`.7`/`.spec` 等)手工补录。
### 现象 4Windows 节点重启后掉线(Docker Desktop 未自启)
- **原因**Docker Desktop 是 GUI 程序,必须有所属用户的**交互桌面会话**才能启动引擎;重启后无人登录桌面时,即使配了 AutoStart 引擎也不会起来(节点小宝网络链路本身 Auto 自启,不受影响)。
- **解决办法**:经跳板 SSH 隧道转发 RDP 登录对应账户桌面,Docker 引擎随登录自启、`dcts-node` 容器靠 restart 策略自动恢复。完整拓扑、凭据、隧道命令与诊断速查见 **[remote_desktop_via_jump.md](remote_desktop_via_jump.md)**。
---
## 3. 日志与现场诊断
日志控制通过 `RUST_LOG` 环境变量配置:
```bash
# 查看服务端调试级别日志
RUST_LOG=info,server=debug ./target/release/server
# 查看节点端详细网络与子进程调用日志
RUST_LOG=info,node=debug,common=trace ./target/release/node
```