Skip to content

[bug] nasm 惰性自举时序:构建先于 bootstrap 完成而判死(.asm 冷环境必失败) #232

Description

@Sunrisepeak

现象(mcpp 0.0.95,linux CI 冷 sandbox,两次复现)

.asm 的包(compat.ffmpeg)在冷环境构建时,nasm 惰性解析报错先于自举消息打出:

22:29:18.92 error: NASM sources (.asm) present but no usable nasm (>= 2.16) was found or installable; install one via `xlings install nasm` or your system package manager
22:29:19.16    Bootstrap nasm into mcpp sandbox (one-time)

两轮独立 run(29617083414 首跑与 failed-rerun)时序完全一致:错误 → ~0.25s 后 bootstrap 启动 → 构建已判死。即 “Bootstrap nasm (one-time)” 被触发,但发起它的构建不等待/不重试,冷环境 100% 失败;PATH 上有 nasm 时不受影响。

复现

mcpp-index PR #74workspace (linux) job(移除 apt nasm 后,13aa71d):

期望

nasm 解析链(PATH → sandbox → bootstrap)中,bootstrap 应同步阻塞当前编译边(或 bootstrap 完成后重试该 TU),像 gcc 工具链自动安装那样;而不是先判死再后台补装。

附带观察

CI 的 actions/cache 精确命中时跳过保存,bootstrap 产物不会进缓存——即使自举成功过,下个 run 仍是冷启动;修复以同步阻塞为准而非依赖缓存。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions