Skip to content

ci(fresh-install): tumbleweed 腿在 zypper 刷新失败时继续安装,于是红在「找不到 binutils」而不是「刷新失败」 #523

Description

@Sunrisepeak

ci-fresh-installLinux distro (tumbleweed) 现在稳定红,而它与 mcpp 无关 ——
失败发生在 Install prerequisites,Install xlings + mcpp 那步是 skipped,
mcpp 一次都没被下载。

读数

Looking for gpg keys in repository openSUSE-Tumbleweed-Update.
  gpgkey=http://download.opensuse.org/update/tumbleweed/repodata/repomd.xml.key
Some of the repositories have not been refreshed because of an error.
No provider of 'binutils' found.
No provider of 'file' found.
No provider of 'findutils' found.
No provider of 'git' found.
##[error]Process completed with exit code 104

复现两次(33138518779 原始 + rerun)。前四次 run(33122098498 /
33070110839 / 33057425361 / 32956783823)该腿都是绿的 ⇒ 上游今天坏的,
不是这边的回归。

⚠️ 真正的缺陷是「继续」而不是「刷新失败」

- distro: tumbleweed
  image: opensuse/tumbleweed:latest
  setup: zypper -n install curl bash tar gzip xz git findutils binutils file

两条叠在一起:

  1. 镜像不钉版(:latest,滚动发行版)—— 每次 run 的仓库元数据都可能不同;
  2. zypper -n install 在刷新失败后仍然继续,拿着过期/空的元数据去解析,
    于是报出来的是 No provider of 'binutils'

⭐ 后果不是「红了」,而是红的理由指向错误的对象:任何人第一眼读到
No provider of 'binutils' found,都会去想「是不是包名变了」,而真因在上面
那行 Some of the repositories have not been refreshed

建议

让刷新失败自己说话,不要让它变成一条包名错误:

setup: >
  zypper -n --gpg-auto-import-keys refresh ||
  { sleep 15; zypper -n --gpg-auto-import-keys refresh; } &&
  zypper -n install curl bash tar gzip xz git findutils binutils file

同一族的判据问题在 .agents/docs/2026-08-28-issue519-dependency-linkage-form.md
里出现过多次:一个失败必须报告它自己的原因,而不是它在下一层造成的症状。

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