App canary health-check runs before the new release is activated, so it validates the OLD running podd
还没有人认领这个 Issue。
评估
调研方向
Read crates/pod-updater/src/release.rs around install_app alongside crates/pod-updater/src/install.rs for staging and health checks, then inspect agent.rs rollback handling and the existing failing_health_check test. Trace when the new release starts and which release the health check observes; done means a failed new release is detected and rolled back automatically, with tests covering the real release flow.
由索引模型根据 Issue 内容生成。
描述
In install_app (crates/pod-updater/src/release.rs:117-133) the order is: stage() -> health.healthy() -> flip previous -> flip current -> installer.restart(). But stage() (SystemInstaller, install.rs:62) only mounts the squashfs read-only; it never launches the new podd. HttpHealthCheck (install.rs:118-140) polls http://127.0.0.1:3000/api/serverStatus, which is served by the still-running OLD release, because restart() doesn't happen until after the current flip. So the canary always reflects the old release's health: a new app build that crashes on boot still passes the canary, current gets flipped, and the service restarts into the broken release. There is also no post-restart verification and rollback() is never called automatically (only exposed as a manual method, agent.rs:318), so the advertised 'canary + instant rollback' safety net (lib.rs:22-24) does not actually protect against a bad app release. The failing_health_check test only passes because FnHealthCheck is decoupled from the real service.
Filed from a repo-wide code audit (working tree at bcad746).
- 主要语言
- Rust
- 星标
- 0
- 派生
- 0
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
GoogleBot42/podd 的其他 Issue
-
documentation
难度 1/5 1 小时以内 新手友好度 84/100
GoogleBot42/podd#63 ·
-
documentation
难度 1/5 1-3 小时 新手友好度 78/100
GoogleBot42/podd#62 ·
-
documentation good first issue
难度 2/5 1-3 小时 新手友好度 69/100
GoogleBot42/podd#60 ·
-
documentation
难度 1/5 1 小时以内 新手友好度 85/100
GoogleBot42/podd#61 ·
-
enhancement
难度 2/5 1-3 小时 新手友好度 72/100
GoogleBot42/podd#58 ·
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
rubys/roundhouse#1917 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复
-
good first issue
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
pop-os/cosmic-applets#1619 ·
维护者通常 3 天内回复
-
binding:python bug
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复