JianFeeeee
a8ecb8257c
revert: 回退 85fd38b(ResolveDataDir 从 exe 猜 dataDir,生产必挂)
This reverts commit 85fd38b7d1.
## 为什么回退
85fd38b 把三端 dataDir 推导统一成 update.ResolveDataDir(exePath):
`HOMEAGENT_DATA_DIR` → `<exe 所在目录>/data` 兜底。方向(三端必须算出
同一个值)是对的,但**兜底那一项在生产上是错的**:
ExecStart=/usr/bin/homed --role=guard --data /var/lib/hologram
ResolveDataDir("/usr/bin/homed") == "/usr/bin/data" ← 与真实值不符
`HOMEAGENT_DATA_DIR` 在现有部署里并没有设置,所以实际生效的就是这个兜底。
后果两个,都是致命的:
① Apply 第一步要在 dataDir 下建备份目录,而 /usr/bin 在
ProtectSystem=strict 下只读 ⇒ EROFS ⇒ 升级必挂
② pending 标记落到内核读不到的位置 ⇒ 升级启动失败后静默不回滚
## 附带问题:空值守卫变成死代码
ecde8dd 的 H1(P1)加的是「dataDir 为空就拒绝升级」。85fd38b 的
ResolveDataDir 兜底**永不为空**(exePath 为空时还会自己去取
KernelBinaryPath),于是三个调用点传进来的 dataDir 恒非空 ——
守卫还在,但守的是一个永远非空的常量,实际不会再拦任何东西。
「不知道」伪装成「知道」比没有守卫更危险:守卫看起来在守,出事时才发现
它从来没生效。所以判据 P1 在 85fd38b 之上是咬不住的。
## 回退范围
只回退 85fd38b 的三个文件(CLI / pluginmgr / webui 的推导逻辑),
回到 ecde8dd 的状态;不影响 ecde8dd 本身。回退后:
· ResolveDataDir 及其所有调用点消失,无悬空引用
· go build ./... 通过
· 三端暂时回到「各端自己推导」——这正是紧随其后的下一个 commit
要替换掉的形态(改为取内核权威源,不做任何推导)
回退 + 后续修复合起来才完整:单看本 commit,dataDir 解析又散回三处;
下一个 commit 用「注入内核真实 -data」取代全部推导。
2026-10-28 17:51:16 +08:00
..
2026-10-13 10:12:57 +08:00
2026-10-22 20:49:44 +08:00
2026-10-17 21:16:49 +08:00
2026-10-19 21:13:23 +08:00
2026-10-21 12:17:19 +08:00
2026-10-08 10:41:22 +08:00
2026-10-27 01:43:19 +08:00
2026-10-27 01:43:19 +08:00
2026-10-27 13:04:19 +08:00
2026-10-26 20:55:25 +08:00
2026-10-17 21:26:12 +08:00
2026-10-21 12:17:19 +08:00
2026-10-18 07:38:10 +08:00
2026-10-18 07:38:10 +08:00
2026-10-21 12:17:19 +08:00
2026-10-26 09:23:58 +08:00
2026-10-25 15:55:26 +08:00
2026-08-26 09:17:07 +08:00
2026-09-14 07:03:47 +08:00
2026-10-23 15:51:02 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-23 15:51:02 +08:00
2026-10-24 13:25:18 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-26 20:55:25 +08:00
2026-08-24 16:22:28 +08:00
2026-09-14 07:03:47 +08:00
2026-10-21 12:17:19 +08:00
2026-10-22 20:49:44 +08:00
2026-10-25 15:55:26 +08:00
2026-10-26 20:55:25 +08:00
2026-10-25 15:55:26 +08:00
2026-10-17 21:26:12 +08:00
2026-10-17 21:18:07 +08:00
2026-10-28 17:51:16 +08:00
2026-10-21 12:17:19 +08:00
2026-10-25 15:55:26 +08:00
2026-07-17 21:41:03 +08:00
2026-10-18 07:38:10 +08:00
2026-10-18 07:38:10 +08:00
2026-10-22 20:49:44 +08:00
2026-10-20 08:57:36 +08:00
2026-10-22 20:49:44 +08:00
2026-10-21 12:17:19 +08:00
2026-10-25 15:55:26 +08:00
2026-10-21 12:17:19 +08:00
2026-10-21 12:17:19 +08:00
2026-10-17 19:18:24 +08:00
2026-10-13 16:21:04 +08:00
2026-10-22 20:49:44 +08:00