记一次PHP7+opcache+zmq出现SIGSEGV 问题的查找(一次不成功的bug查找)

Title:  记一次PHP7+opcache+zmq出现SEGSEGV问题的查找(一次不成功的bug查找)docker

bug来历自述:
线上代码PHP环境是5.2,为了提高性能(逼格),因而升级为PHP7并使用docker部署,为了方便起见使用yum安装(懒惰),代码经测试后准备部署上线,这个时候问题来了。性能

在配置FPM后压测,发现当FPM子进程重启时,总会有502错误(fpm日志)。测试

ba la ba la开始找问题:
一、首先确认是否是FPM的配置问题,找了一圈,没有发现问题
二、从PHP7自己开始,想着PHP7咱们都使用了什么新东东,很明显opcache就被这么抓到了。
在配置里面关闭opcache,测试没有再出现502,说明opcache有问题

那到底opcache有问题吗?是否是本身的代码里面有问题呢?
因而乎,开始opcache,只简单的打印一些东东
噢、噢、噢、噢.....
居然没有发现502了,好吧看来代码里面仍是有别的问题
就这么又看到了ZMQ,最终发现当opcahce+ZMQ时会有502...................................


最终懒人的解决方案:
一、继续使用opcache
二、将使用到zmq扩展的文件加入opcache的黑名单里
日志

相关文章
相关标签/搜索