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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions