fix(chv): 浏览器单元去掉成环的 After=cloud-final
cloud-final 自己 After=multi-user.target,与浏览器的 Before=multi-user.target(WantedBy 隐含)成环,systemd 启动时 直接删掉浏览器任务:构建 #9 驱动实证服务从未启动(NRestarts=0、 无日志,journal 明言 Job deleted to break ordering cycle), 构建 #8 同款问题一直被手动 restart 掩盖。改排在数据盘挂载单元 home-chv-workspace.mount 之后(真依赖);单测钉死不再出现 cloud-final。
This commit is contained in:
1 parent
0100ffe207
commit
c7ffb1fe6f
2 files changed
+17
-5
No files matched your search
@@ -547,14 +547,19 @@ class BuildWiringTest(unittest.TestCase):
|
||||
self.assertIn(".chv-browser-profile", text)
|
||||
self.assertIn("chown chv-browser:chv-browser", text)
|
||||
|
||||
def test_build_sh_browser_unit_always_restarts_after_cloud_final(self):
|
||||
def test_build_sh_browser_unit_orders_after_data_disk_mount(self):
|
||||
# 绝不能 After=cloud-final.service:cloud-final 自己
|
||||
# After=multi-user.target,与浏览器的 Before=multi-user.target
|
||||
# 成环,systemd 启动时直接删掉浏览器任务(2026-11-08 构建 #9
|
||||
# 驱动实证)。排在数据盘挂载单元之后才是真依赖。
|
||||
text = (ROOT / "chv-guest" / "build.sh").read_text()
|
||||
idx = text.find("Description=CHV browser sub-agent")
|
||||
self.assertGreater(idx, 0)
|
||||
block = text[idx:idx + 800]
|
||||
block = text[idx:idx + 1200]
|
||||
self.assertIn("Restart=always", block)
|
||||
self.assertIn("After=network.target cloud-final.service",
|
||||
self.assertIn("After=network.target home-chv-workspace.mount",
|
||||
block)
|
||||
self.assertNotIn("cloud-final.service", block)
|
||||
|
||||
def test_tmpfiles_lets_browser_bind_its_socket(self):
|
||||
# 阶段 3 live 根因:/run/chv 0755 root:root 时 chv-browser
|
||||
@@ -617,7 +622,7 @@ class BuildWiringTest(unittest.TestCase):
|
||||
self.assertEqual(proc.returncode, 0, proc.stderr)
|
||||
out = proc.stdout + proc.stderr
|
||||
self.assertIn("Restart=always", out)
|
||||
self.assertIn("cloud-final.service", out)
|
||||
self.assertIn("home-chv-workspace.mount", out)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in new issue
Block a user