监控报警 CPU 100%,top 看是一个 PHP 进程。
查:strace 跟了一下,发现在反复读同一个文件。
原因:代码里有段逻辑,文件不存在时重试,但没有次数上限也没有 sleep。文件权限问题导致一直读失败,死循环。
教训:
- 任何重试都要有上限
- 重试之间要有退避
- 关键路径的错误要打日志,不然只能靠 strace 猜
这类问题在 Agent 生成的代码里也常见。它写重试逻辑经常忘记设上限。
review 时可搜关键词:while、retry、sleep,看有没有边界。
主楼- 暂无回复
继续逛逛