已开启
fix(init_cmds): syncexec/DumpFdInfo waitpid 增加超时 (高-6) #4964
chenjinxiang3创建于 27 天前
fix(init_cmds): syncexec/DumpFdInfo waitpid 增加超时 (高-6) #4964
已开启
合并受阻
27 天前 添加了label:waiting_on_author
openharmony_ci
27 天前 评论:
27 天前 评论:
感谢提交 Pull Requests!如果您提交的PR已经开发完毕,请评论 "start build" 触发门禁,更多交互操作,请访问OpenHarmony社区支持命令清单。如果需要调整订阅PR、Issue的变更状态,请访问订阅链接。
Thanks for submitting the pull request. If your Pull Request has already been developed, you can leave a "start build" comment to trigger the gated system. For more commands, please visit OpenHarmony Command List. If you need to change the subscription of a Pull Request or Issue, please visit the link.


27 天前 关联了issue:startup_init 稳定性修复:PID 1 冻结/堆破坏/崩溃恢复(高-1~高-11,高-13 + P2 11项)
27 天前 添加了label:dco检查成功
openharmony_dcp
2 天前 评论:
2 天前 评论:
您好, @chenjinxiang3 该PR需要您响应,已过去25天未响应,请根据检视意见进行修改,如5天内未响应检视意见,此PR会被自动关闭。关闭后的PR,如有需要,您可以自行打开该PR。


背景
startup_init稳定性 13 项高危之一(高-6),单独上库以便快速评审合入。完整集见 PR #4948,快赢子集见 PR #4960。startup_init_stability_analysis.md(高-6)、startup_init_test_recommendation.md。问题
services/init/standard/init_cmds.c的SyncExecCommand(cfgsyncexec命令)与DumpFdInfo中waitpid(pid, &status, 0)无超时。syncexec是 init.cfg 可配置命令,异常/恶意子进程挂起即冻结 PID 1(服务拉起/SIGCHLD 收尸/参数服务全停)。违反AGENTS.md§3.2"阻塞 exec 需带超时"。修复
新增 file-static
WaitPidTimeout(pid, timeoutMs)(WNOHANG轮询 100ms,超时SIGKILL+收尸,返 -1):SyncExecCommand:SYNC_EXEC_TIMEOUT_MS = 30000(30s)DumpFdInfo:FD_DUMP_TIMEOUT_MS = 5000(5s)超时即强杀收尸(无僵尸),调用方返错而非阻塞。
行为变更
验证
ninja -C out/rk3568 init→LINK startup/init/init,0 error,0 warning。WaitPidTimeout为 file-static,主机单测不可直达;设备验证:cfg 加syncexec sleep 999→ init 30s 内返回非 0、不冻结。syncexec的正常 cfg 命令返回正确退出码。Signed-off-by: chenjinxiang3 chenjinxiang3@huawei.com