php程序死循环导致502报错

来源:互联网 发布:手机隔墙听软件 编辑:程序博客网 时间:2024/05/14 14:40

请求访问返回502错误提示,尝试去除可疑代码段,发现程序正常,可疑代码段如下图箭头指向:


当时脑热的以为是本地php5.5.18版本过低,不支持[]数组语法(实际php 5.4 开始支持的),于是升级为php7.0.5版本,然而发现依旧502。

最后仔细观察nginx错误提示,nginx慢日志如下图所示,发现到指定代码行执行失败了,才开始考虑可能是可疑代码行之后的代码出现问题。


找到指定行,如下图代码块所示。通过日志跟踪调试发现,当删除可疑行代码时,$adminIpArr数组为空,可以顺利结束while循环,当数组不为空时,由于$bin变量不发生变化,导致程序陷入死循环。


php-fpm由于长时间未返回处理结果给nginx,导致nginx响应超时,导致nginx最终返回502错误。nginx错误提示如下:


修改死循环代码,使$bin变量自动增加,即可正常结束循环。


原创粉丝点击