Closed
[install.sh] 本地模式tag面陈旧静默错版:缺.18 tag时装出.17且全程绿灯 #167
kemengAdd on  21 hours agoClosed at  20 hours ago
kemengCollaborators
21 hours ago Create

病相

git pull后跑install.sh,装出老版本(本例:.17),且幂等短路+验证门禁全程绿灯,零告警。

根因(install.sh,一手读码+沙盒复现)

  1. resolve_version(:281):本地模式 EXPECT_TAG=$(git describe --tags --abbrev=0)——只读本地tag面,全仓无一处 fetch --tags 刷新。
  2. ensure_source(:260-265):EXPECT_TAG非空即 worktree 到该tag构建——构建的是tag定值,与pull后的HEAD无关。
  3. verify(S1)期望串=产物自身输出;idempotent_shortcircuit 部署位==EXPECT_TAG即短路——错版安装自洽通过。

复现(/tmp沙盒,不碰真实仓)

clone主仓,tag -d v1.10.18(复刻pull未取到tag),HEAD=1d8b26cbe与master同值;describe ⇒ v1.10.17 ⇒ 将构建1cb15ba59720(.17定值)。

AC(dev修)

  1. 本地无--version时先 git fetch --tags 刷新,失败fail-closed die。
  2. EXPECT_TAG必须等于远端最新tag(复用remote_latest_tag),不等即die并显名两值。
  3. verify加远端最新核对;复现体跑安装盘必须die或装.18,不得静默装.17。
likedislike
kemengCollaborators
20 hours ago Comments:

【ar核验】双评审出库(V1_10_19_CODE_REVIEW·A/V1_10_19_TEST_DELIVERABLES_REVIEW·A):AC1 fetch fail-closed/AC2本地==远端显名两值/AC3 verify加检逐字落实;L3 #1276 SUCCESS 7/7@bb329e9aa,install.sh零差异三is-ancestor齐=等效终读;红测3/3随lint链绿。判据齐,关单。

likedislike
KkemengCollaborators
20 hours ago Close issue
kemengCollaborators
20 hours ago Comments:

双评审A/A通过(证据见上条)

likedislike
kemengCollaborators
10 hours ago Comments:

等效面验收证据(tx · 2026-11-09 · 承 ar R02 §5 = a6b44519f)

面三值

  • 支:v1.10.19.2(annotated e6b539edb → deref 3fa4e4594)
  • 尖:3fa4e4594
  • 树:4fb4ba9f1d580752db2db0e428569a2bb8996714
  • 作业面:本机临时 worktree /mnt/xwdata/tmp/tx-167-verify(detached at tag,未动任何工作树)

一、修在发布面
git merge-base --is-ancestor 78ad6ff06 v1.10.19.2 → rc=0(#167 修复笔含于该 tag)

二、独立复跑(零网络 · 桩产物 · 本机)
bash scripts/tests/install_tag_freshness_leg.sh → PASS=3 FAIL=0,rc=0

  • A 本地 tag 面陈旧(缺最新 tag)⇒ 按远端最新装 v0.0.2(未静默用陈旧 v0.0.1)
  • B 本地多出远端无的 tag ⇒ die 并显名两值(rc=1)
  • C git fetch --tags 不可达 ⇒ fail-closed(rc=1)

日志:/tmp/i167leg.log;腿件 sha256(16)=ffdad36c5593fb81

三、等效面边界(如实)

覆盖 不覆盖
v1.10.19.2 发布面所含 install.sh 修复对 AC1/AC2/AC3 有效 tx2 现场部署位 1.10.19.2+g3fa4e4594 的实测读数(本机无 tx2 可达路径)

读数为本席独立复跑,非采信 dev 报数。

likedislike