Kubo migration cannot stop an alpha.25 daemon that outlived Runtime (--enable-gc ignores API shutdown)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 42/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- linux, rust
调研方向
Start in retire_online_coord and trace how it verifies daemon ownership, sends /shutdown, and handles the five-second wait; the issue also points to update_controller/child.rs and scripts/mac-source-home-restart.sh. Run the real-Kubo test with its daemon started using --enable-gc to reproduce the failure. Done means the owned daemon is stopped after accepting shutdown, the test covers that case, and the source-Home restart stops the gateway process group.
由索引模型根据 Issue 内容生成。
描述
Found 29 Oct while testing the 0.8.0-alpha.26 candidate (8a74b669c).
What happens: Kubo started with --enable-gc (every alpha.25 and alpha.26 daemon) answers /api/v0/shutdown with 200 but does not exit until a second interrupt. The offline migration (retire_online_coord, capsules/ipfs-provider) relies on that API shutdown, so if an alpha.25 online daemon is still running when the new Runtime starts, the migration refuses every start and local IPFS stays unusable until a reboot or a manual kill; the old daemon keeps running online.
Why it does not affect normal installs: the installed stop and elastos update kill Runtime's whole process group (update_controller/child.rs), which includes Kubo, so the old daemon is gone before the new Runtime starts. CI update journeys pass. It shows only when a daemon survives outside that, e.g. after a crash or on source Homes (scripts/mac-source-home-restart.sh signals only the gateway pid).
Fix (0.8.1): in retire_online_coord, after a daemon proven to be ours (our PeerID from /id, holds our repo lock) accepted /shutdown and is still alive after 5 s, send it one SIGTERM (Kubo's own second-interrupt force stop); keep the refusal if it still runs. Make the real-Kubo test start its online daemon with --enable-gc so it fails before the fix. Also have the source-Home restart script stop the gateway's process group.
- 主要语言
- Rust
- 星标
- 6
- 派生
- 2
- 平均合并
- 1 天 3 小时
- 30 天内合并 PR
- 42
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
elastos/elastos-runtime 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
elastos/elastos-runtime#563 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
elastos/elastos-runtime#508 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
elastos/elastos-runtime#436 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
elastos/elastos-runtime#427 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
elastos/elastos-runtime#405 ·
维护者通常 1 天内回复
查看 elastos/elastos-runtime 的全部 Issue
相似的 Issue
-
bug good first issue help wanted linux macos testing
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
area: app type: test
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
bug priority: medium
难度 2/5 1-3 小时 新手友好度 78/100
storytold/photocraft#12706 · 1 条评论 ·
维护者通常 1 天内回复
-
bug priority-low to-agent
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
examples/dca and limit-order: swap always fails on the real Soroswap router (deadline equals now)未关闭
难度 2/5 1-3 小时 新手友好度 76/100
sorocon-labs/sorocron#172 ·
维护者通常 1 天内回复