2019独角兽企业重金招聘Python工程师标准>>>

本文通过 OscPress 同步至oschina,最新版本请查看原文:
https://www.cellmean.com/?p=1048

最近 在OSX 开发Wordpress,nginx偶尔会出现502错误,查看日志发现:

2016/07/15 12:44:28 [error] 239#0: *5670 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: dev.cellmean.com, request: “GET /%e6%b5%8b%e8%af%95%e6%a0%87%e9%a2%98/ HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “dev.cellmean.com”, referrer: “http://dev.cellmean.com/%e6%b5%8b%e8%af%95%e6%96%87%e7%ab%a0%e5%90%8c%e6%ad%a5%e5%88%b0-osc/”

似乎跟上游的php-fpm有关,查看php-fpm.log:

[15-Jul-2016 12:44:28] WARNING: [pool www] child 79191 exited on signal 11 (SIGSEGV) after 18.827492 seconds from start
[15-Jul-2016 12:44:28] NOTICE: [pool www] child 79349 started

可以看到出现的时间跟nginx的时间是一致的,php进程池遇到(SIGSEGV)错误, 重启了。关闭了对nginx请求的处理。

在日志的其他地方还能看到另一个信号(SIGBUS) :

[15-Jul-2016 20:41:58] NOTICE: [pool www] child 86825 started
[15-Jul-2016 20:44:59] WARNING: [pool www] child 79193 exited on signal 10 (SIGBUS) after 14402.816372 seconds from start

关于这两个信号的说明:http://blog.csdn.net/haogaoming123/article/details/42082483

涉及共享内存的管理就不能不提到访问共享内存对象。谈到访问共享内存对象就要留神“SIGSEGV和SIGBUS”这两个信号。
系统分配内存页来承载内存映射区,由于内存页大小是固定的,所以存在多余的页空间空闲,比如待映射文件大小为5000 bytes,内存映射区大小也为5000 bytes。而一个内存页大小4096,系统势必要分配两页来承载,这时空闲的有效空间为从5000-8191,如果进程访问这段地址空间也不会发生错误。但是要超出8191,就会收到SIGSEGV信号,导致程序停止。
关于SIGBUS信号的来历,这里也举例说明:若待映射文件大小为5000 bytes,我们在mmap时指定内存映射区size = 15000 > 5000,页承载大小16384,而内核真正的共享区承载体大小只有8192(能包容映射文件大小即可),此时在[0,8191]内访问均没问题,但在[8192, 16383]之间会得到SIGBUS信号;超出16384访问时会触发SIGSEGV信号。

to be continue…

感谢阅读本文,欢迎访问 微言 获取更多内容或 查看原文

转载于:https://my.oschina.net/falcon10086/blog/712804

php进程SIGBUS,SIGSEGV错误相关推荐

  1. 关于SIGSEGV错误及处理方法

    关于SIGSEGV错误及处理方法     今天编程遇到了SIGSEGV错误,比较困惑,所以找了些资料,总结一下: (1)官方说法是: SIGSEGV --- Segment Fault. The po ...

  2. c语言sigsegv解决方法,关于SIGSEGV错误及处理方法(转)

    今天编程遇到了SIGSEGV错误,比较困惑,所以找了些资料,总结一下: (1)官方说法是: SIGSEGV --- Segment Fault. The possible cases of your ...

  3. NDK 编译armebai-v7a的非4字节对齐crash Fatal signal 7 (SIGSEGV) 错误解决

    一直都是编译armabi的.没有不论什么问题,这个架构是软件模拟浮点运算的. 后来看到NDK文档上说armabi-v7a是针对有硬件处理浮点计算的arm cpu的. 于是就改动配置编译armebai- ...

  4. VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法

    VS2017 启动调试出现 无法启动程序"http://localhost:15613" 操作在当前状态中是非法的. 同时附加进程也是错误的解决方法 参考文章: (1)VS2017 ...

  5. QT tcpserver启动监听SIGSEGV错误

    QT tcpserver启动监听SIGSEGV错误 --------------------------- Signal Received --------------------------- &l ...

  6. MSDN中Enumerating All Processes枚举所有进程事例编译错误解析办法

    MSDN中http://msdn.microsoft.com/en-us/library/ms682629(VS.85).aspx 枚举全部进程事例代码编译出现如下错误的原因及解决办法 Process ...

  7. signal 11 linux,signal 11 (SIGSEGV)错误排查

    jni调试最蛋疼的就是signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4这种错误,爆出来完全不知道是哪句代码造成的,很难定位到问题所在, ...

  8. oracle ogg启动不了,OGG启动REPLICAT进程遇到OGG-00212错误 | 信春哥,系统稳,闭眼上线不回滚!...

    今天在给客户安装OGG的时候,EXTRACT进程无法启动. GGSCI (ycods1) 4> start EXTBAM Sending START request to MANAGER ... ...

  9. sigbus内存错误

    2019独角兽企业重金招聘Python工程师标准>>> 编写跨平台代码时,ARM不支持非对齐的内存访问,x86支持,跨平台C++代码容易出现以下问题 sigbus意思是该地址有效,但 ...

最新文章

  1. IOS类似9.png
  2. SSH Secure Shell Client无法连接utbuntu的报错
  3. 【项目管理】认识项目相关方(干系人)管理
  4. 【C语言】复合逻辑运算
  5. Intel Hyperscan简介
  6. mapper接口中的方法,example实例解析
  7. Ubuntu-安装-有道词典
  8. Python电子书下载
  9. PS使用技巧(五) 形状工具 U
  10. MySQL 数据恢复 —— 使用 data 目录
  11. 代理服务器和IP加速器之间有什么关系?
  12. 深度学习框架zf_深度学习十大框架比较
  13. Cadence Allegro 如何添加Artwork光绘底片文件?
  14. CentOS7怎么保存退出vi编辑
  15. PHP云盘网盘系统源码+快速对接多家云存储+VIP付费下载功能
  16. PDF分割与合并(充分利用Spire的bug实现操作PDF)
  17. 大数据毕设项目 深度学习火焰检测识别 python opencv
  18. 如何判断运行中的代码是调试模式(debug),还是运行模式
  19. APP端接入支付宝支付接口
  20. 5G测试完毕,梦想能否照进现实

热门文章

  1. centos下搭建网站服务器,Centos7搭建web服务器
  2. python抓虫_Python 七步捉虫法
  3. python代码直接关机_python实现电脑自动关机
  4. linux centos 6.5压缩文件,CentOS 6.10 解压 rar压缩包
  5. java拳皇地下城_拳皇(Java简单的小程序)代码实例
  6. 计算机系统化科学化和什么,自动化概论复习资料
  7. php foreach面试题,PHP引用理解之神奇的foreach面试题
  8. django数据库模型搭建ORM
  9. 算法导论-算法基础-2.1插入排序 (从小到大)
  10. Hadoop异常 hdfs.DFSClient: DataStreamer