提醒:本文最后更新于 3217 天前,文中所描述的信息可能已发生改变,请仔细核实。
PHP 7最近出现了一堆signal 7 (SIGBUS),内核没报错。
最后查到是PHP在发送邮件的时候,会出现signal 7 (SIGBUS)退出,但是没core dump。
发现这个问题的引起主要是因为pm的方式引起的,当pm为static时,一定概率触发,试了下超过60%机率出现signal 7。
发送邮件后(WP回复评论会发送邮件),会有几个php-fpm子进程100%CPU。Strace的话,提示:
mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528698, 11508}, NULL) = 0 gettimeofday({1451528698, 12114}, NULL) = 0 gettimeofday({1451528698, 12427}, NULL) = 0 gettimeofday({1451528698, 14962}, NULL) = 0 gettimeofday({1451528698, 15752}, NULL) = 0 sendto(5, "\343\0\0\0\3SELECT COUNT(*) FROM wp_co"..., 231, MSG_DONTWAIT, NULL, 0) = 231 poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}]) recvfrom(5, "\1\0\0\1\1\36\0\0\2\3def\0\0\0\10COUNT(*)\0\f?\0\25\0\0"..., 3593, MSG_DONTWAIT, NULL, NULL) = 64 gettimeofday({1451528698, 18059}, NULL) = 0 gettimeofday({1451528698, 18186}, NULL) = 0 gettimeofday({1451528698, 19500}, NULL) = 0 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528698, 619828}, NULL) = 0 gettimeofday({1451528698, 620468}, NULL) = 0 gettimeofday({1451528698, 620648}, NULL) = 0 gettimeofday({1451528698, 623313}, NULL) = 0 gettimeofday({1451528698, 623399}, NULL) = 0 write(4, "\1\6\0\1\37\370\0\0pan class='unapprove'><a"..., 8192) = 8192 gettimeofday({1451528698, 624614}, NULL) = 0 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528699, 174767}, NULL) = 0 gettimeofday({1451528699, 175348}, NULL) = 0 gettimeofday({1451528699, 175525}, NULL) = 0 gettimeofday({1451528699, 177720}, NULL) = 0 gettimeofday({1451528699, 178301}, NULL) = 0 sendto(5, "\343\0\0\0\3SELECT COUNT(*) FROM wp_co"..., 231, MSG_DONTWAIT, NULL, 0) = 231 poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}]) recvfrom(5, "\1\0\0\1\1\36\0\0\2\3def\0\0\0\10COUNT(*)\0\f?\0\25\0\0"..., 3529, MSG_DONTWAIT, NULL, NULL) = 63 gettimeofday({1451528699, 180599}, NULL) = 0 gettimeofday({1451528699, 180695}, NULL) = 0 write(4, "\1\6\0\1\37\370\0\0003426aa140798254bc4a2f709"..., 8192) = 8192 gettimeofday({1451528699, 181823}, NULL) = 0 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528699, 717006}, NULL) = 0 gettimeofday({1451528699, 717593}, NULL) = 0 gettimeofday({1451528699, 717767}, NULL) = 0 sendto(6, "get wp_:posts:4703\r\n", 20, MSG_NOSIGNAL, NULL, 0) = 20 recvfrom(6, 0x255e408, 8196, 16384, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=6, events=POLLIN}], 1, 5000) = 1 ([{fd=6, revents=POLLIN}]) recvfrom(6, "VALUE wp_:posts:4703 84 5620\r\n7C"..., 8196, MSG_NOSIGNAL, NULL, NULL) = 5657 gettimeofday({1451528699, 720344}, NULL) = 0 gettimeofday({1451528699, 720839}, NULL) = 0 sendto(5, "\343\0\0\0\3SELECT COUNT(*) FROM wp_co"..., 231, MSG_DONTWAIT, NULL, 0) = 231 poll([{fd=5, events=POLLIN|POLLERR|POLLHUP}], 1, 1471228928) = 1 ([{fd=5, revents=POLLIN}]) recvfrom(5, "\1\0\0\1\1\36\0\0\2\3def\0\0\0\10COUNT(*)\0\f?\0\25\0\0"..., 3466, MSG_DONTWAIT, NULL, NULL) = 64 gettimeofday({1451528699, 722824}, NULL) = 0 gettimeofday({1451528699, 722916}, NULL) = 0 gettimeofday({1451528699, 724090}, NULL) = 0 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528700, 286251}, NULL) = 0 gettimeofday({1451528700, 286823}, NULL) = 0 gettimeofday({1451528700, 287050}, NULL) = 0 gettimeofday({1451528700, 289651}, NULL) = 0 gettimeofday({1451528700, 289738}, NULL) = 0 write(4, "\1\6\0\1\37\370\0\0\260\206\350\277\231\346\235\241\350\257\204\350\256\272\346\240\207\350\256\260\344\270\27 2\345"..., 8192) = 8192 gettimeofday({1451528700, 291098}, NULL) = 0 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd600000 mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x40000, -1, 0) = -1 ENOMEM (Cannot allocate memory) mmap(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f75cd400000 munmap(0x7f75cd600000, 2097152) = 0 munmap(0x7f75cd400000, 2097152) = 0 gettimeofday({1451528700, 847193}, NULL) = 0 gettimeofday({1451528700, 847711}, NULL) = 0 gettimeofday({1451528700, 847902}, NULL) = 0 gettimeofday({1451528700, 849289}, NULL) = 0 gettimeofday({1451528700, 849403}, NULL) = 0 sendto(6, "get wp_site-options:0:notoptions"..., 34, MSG_NOSIGNAL, NULL, 0) = 34 recvfrom(6, 0x255e408, 8196, 16384, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=6, events=POLLIN}], 1, 5000) = 1 ([{fd=6, revents=POLLIN}]) recvfrom(6, "END\r\n", 8196, MSG_NOSIGNAL, NULL, NULL) = 5 write(4, "\1\6\0\1\37\370\0\0om\">ou"..., 8192) = 8192 gettimeofday({1451528700, 851143}, NULL) = 0 write(4, "\1\6\0\1\37\370\0\0\"\" />\n\t<input type=\"hidd"..., 8192) = 8192 sendto(6, "get wp_site-options:0:notoptions"..., 34, MSG_NOSIGNAL, NULL, 0) = 34 recvfrom(6, 0x255e408, 8196, 16384, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=6, events=POLLIN}], 1, 5000) = 1 ([{fd=6, revents=POLLIN}]) recvfrom(6, "END\r\n", 8196, MSG_NOSIGNAL, NULL, NULL) = 5 chdir("/") = 0 clock_gettime(CLOCK_MONOTONIC, {972, 990941706}) = 0 times({tms_utime=1740, tms_stime=20, tms_cutime=0, tms_cstime=0}) = 429498734 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 fcntl(3, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0 sendto(6, "quit\r\n", 6, MSG_NOSIGNAL, NULL, 0) = 6 shutdown(6, SHUT_WR) = 0 shutdown(6, SHUT_RD) = 0 close(6) = 0 munmap(0x7f75ca000000, 2359296) = 0 sendto(5, "\1\0\0\0\1", 5, MSG_DONTWAIT, NULL, 0) = 5 close(5) = 0 write(4, "\1\6\0\1\n\35\3\0int screen-reader-text\">"..., 2616) = 2616 shutdown(4, SHUT_WR) = 0 recvfrom(4, "\1\5\0\1\0\0\0\0", 8, 0, NULL, NULL) = 8 close(4) = 0 clock_gettime(CLOCK_MONOTONIC, {973, 26167354}) = 0 munmap(0x7f75c9c00000, 2097152) = 0 munmap(0x7f75c9e00000, 2097152) = 0 munmap(0x7f75ca400000, 2097152) = 0 munmap(0x7f75ca600000, 2097152) = 0 munmap(0x7f75ca800000, 2097152) = 0 munmap(0x7f75caa00000, 2097152) = 0 munmap(0x7f75cac00000, 2097152) = 0 munmap(0x7f75cae00000, 2097152) = 0 munmap(0x7f75cb000000, 2097152) = 0 munmap(0x7f75cb200000, 2097152) = 0 munmap(0x7f75cb400000, 2097152) = 0 munmap(0x7f75cb600000, 2097152) = 0 munmap(0x7f75cb800000, 2097152) = 0 munmap(0x7f75cba00000, 2097152) = 0 munmap(0x7f75cbc00000, 2097152) = 0 munmap(0x7f75cbe00000, 2097152) = 0 munmap(0x7f75cc000000, 2097152) = 0 munmap(0x7f75cc200000, 2097152) = 0 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0 clock_gettime(CLOCK_MONOTONIC, {973, 42458233}) = 0 accept(0,
如果没有进程100%CPU,那就是触发signal 7 (SIGBUS)退出了。。内核没报错,应该是PHP 7自身问题。不使用任意扩展(仅使用opcache)也会出现这个问题。
php.ini有关邮件的只有这一项:
sendmail_path = /usr/sbin/sendmail.postfix -t -i
这个应该不会出现任何问题才对吧。
当然出现问题时,是在Wordpress下测试的,也有可能Wordpress函数有问题?
但是没收到任何notice、warning、error,已经启用了catch_workers_output,没看到任何有用的错误输出。只看到:
ERROR: unable to read what child say: Bad file descriptor (9)
何解!?
另外pm在ondemand下比较正常,起码没有signal 7 (SIGBUS),但是发完邮件php还是会一卡一卡的。
一开始以为是跟内核(3.10.94-elrepo)有关系,使用旧内核(2.6.32)来测试,没有输出core dump,尝试用igbinary,出现segmentation fault后,内核输出了core dump,所以跟内核没关系。
在漫长的等待中,被我等到了!(好吧,发现BUG的心情,总是让人那么的喜悦,我肯定是病得不清。另外定时文章的好处出来了,在正式发布之前,随时可以修改草稿。。永远不怕时间流逝,最终展示给大家总是最新的消息。省去后期修改文章后,无人知,无人问津)
php-fpm.log输出:
WARNING: [pool www] child 14105 said into stderr: "sendmail.postfix: fatal: no-reply@kn007.net(50 0): No recipient addresses found in message header" WARNING: [pool www] child 14105 exited on signal 7 (SIGBUS - core dumped) after 102.008292 second s from start NOTICE: [pool www] child 14572 started WARNING: [pool www] child 14116 said into stderr: "sendmail.postfix: fatal: no-reply@kn007.net(50 0): No recipient addresses found in message header" WARNING: [pool www] child 14116 exited on signal 7 (SIGBUS - core dumped) after 109.518224 second s from start NOTICE: [pool www] child 14575 started WARNING: [pool www] child 14076 exited on signal 7 (SIGBUS - core dumped) after 115.480386 second s from start NOTICE: [pool www] child 14577 started WARNING: [pool www] child 14079 said into stderr: "sendmail.postfix: fatal: no-reply@kn007.net(50 0): No recipient addresses found in message header" WARNING: [pool www] child 14079 exited on signal 7 (SIGBUS - core dumped) after 121.723991 second s from start NOTICE: [pool www] child 14581 started
core dump输出:
... Core was generated by `php-fpm: pool www '. Program terminated with signal 7, Bus error. #0 0x00000000009af0aa in zend_mm_free_small (heap=0x7fc7ca600040, ptr=0x7fc7c3c5b000, bin_num=10) at /data/src/php-7.0.1/Zend/zend_alloc.c:1303 1303 heap->size -= bin_data_size[bin_num]; Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.el6_0.x86_64 cyrus-sasl-lib-2.1.23-15.el6_6.2.x86 _64 libgcc-4.4.7-16.el6.x86_64 libidn-1.18-2.el6.x86_64 libmcrypt-2.5.8-9.el6.x86_64 libpng-1.2.49-2.el6_7.x86_64 libstd c++-4.4.7-16.el6.x86_64 nspr-4.10.8-2.el6_7.x86_64 nss-3.19.1-5.el6_7.x86_64 nss-util-3.19.1-2.el6_7.x86_64 openldap-2.4 .40-7.el6_7.x86_64 zlib-1.2.3-29.el6.x86_64 (gdb) bt #0 0x00000000009af0aa in zend_mm_free_small (heap=0x2aaaaac00040, ptr=0x2aaab30b7070, bin_num=10) at /data/src/php-7.0.1/Zend/zend_alloc.c:1303 #1 0x00000000009af499 in zend_mm_free_heap (heap=0x2aaaaac00040, ptr=0x2aaab30b7070, __zend_filename=0xd397e0 "/data/src/php-7.0.1/ext/standard/mail.c", __zend_lineno=381, __zend_orig_filename=0x0, __zend_orig_lineno=0) at /data/src/php-7.0.1/Zend/zend_alloc.c:1402 #2 0x00000000009b1cdc in _efree (ptr=0x2aaab30b7070, __zend_filename=0xd397e0 "/data/src/php-7.0.1/ext/standard/mail.c", __zend_lineno=381, __zend_orig_filename=0x0, __zend_orig_lineno=0) at /data/src/php-7.0.1/Zend/zend_alloc.c:2458 #3 0x0000000000856405 in php_mail (to=0x2aaab30a2b60 "kn007@126.com", subject=0x2aaab3088680 "=?UTF-8?B?5oSf6LCi5oKo5LiA55u05Lul5p2l5a+55oiR5Lus55qE5YWz5b+D5ZKM5pSv?= =?UTF-8?B?5oyB?=", message=0x2aaab306f418 "<!DOCTYPE html>\n\t\t\t<div style=\"background-color:#fff; border:1px solid #666666; color:#111;\n\t\t -moz-border-radius:8px; -we bkit-border-radius:8px; -khtml-border-radius:8px; \n\t\tborder-radius:8px; font-s"..., headers=0x2aaaaac73398 "Date: Fri, 1 Jan 2016 04:16:16 +0000\nFrom: kn007's blog <no-reply@kn007.net>\nMessage-ID: <2c97c803b9ad1c4872b11a6491ea5a16@defau lt>\nX-Priority: 3\nX-Mailer: PHPMailer 5.2.10 (https://github.com/PHPMail"..., extra_cmd=0x2aaab30896d8 " ") at /data/src/php-7.0.1/ext/standard/mail.c:381 #4 0x0000000000855d61 in zif_mail (execute_data=0x2aaaaac15ac0, return_value=0x2aaaaac15aa0) at /data/src/php-7.0.1/ext/standard/mail.c:174 #5 0x0000000000a3f0b8 in ZEND_DO_ICALL_SPEC_HANDLER () at /data/src/php-7.0.1/Zend/zend_vm_execute.h:586 #6 0x0000000000a3eaf0 in execute_ex (ex=0x2aaaaac15030) at /data/src/php-7.0.1/Zend/zend_vm_execute.h:414 #7 0x0000000000a3ec05 in zend_execute (op_array=0x2aaaaac7d000, return_value=0x0) at /data/src/php-7.0.1/Zend/zend_vm_execute.h:458 #8 0x00000000009e4c0c in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /data/src/php-7.0.1/Zend/zend.c:1428 #9 0x0000000000957e2f in php_execute_script (primary_file=0x7ffdce61ecb0) at /data/src/php-7.0.1/main/main.c:2471 #10 0x0000000000ab1b4f in main (argc=6, argv=0x7ffdce61eec8) at /data/src/php-7.0.1/sapi/fpm/fpm/fpm_main.c:1944 (gdb)
目前仍然调试看下是什么问题,如果解决不了,就只能提交issue了。
最新进展:
用wp_mail()函数就有问题,用mail()就没有。
重启php-fpm,两者都正常,看来还要运行一段时间才行。已联系鸟哥。。元旦居然没出去玩。
结果鸟哥说core dump被内存跑花了,难以分析。说看下能不能在命令行重现。
在我把wordpress的wp_mail独立出来后,在命令行跑都没问题。
最终hugepage不够的情况下,一直signal 7,目前在编译了disable-huge-code-page的php7运行,没有问题。坑爹的是,单纯的disable-huge-code-page还不行,必须系统不存在可用hugepage块才行。太囧了。
禁用hugepage性能也下降了85%了。晕了。简单说现在存在几个问题:
1.使用--disable-huge-code-page只是让php-fpm启动时不检测hugepage是否可用,只要有可用的hugepage就会用。真正不使用hugepage,需要将内核的hugepage禁用。但这样的话,其他要用hugepage的程序就被动了。
2.每次崩溃的时候(大部分是wp_mail发送邮件的时候),php -a,或者随便php个文件,都会提示
PHP Warning: Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory (12) in Unknown on line 0最后测明是hugepage不够用的原因。这个只能加内存了。鸟哥说推荐16G以上来启用hugepage。
我目前空闲内存3G,分了512页,可以正常跑了。
关于igbinary,一用就会signal 11 (SIGSEGV),内核提示segmentation fault,给igbinary官方提交issue也没任何答复,其PHP 7的兼容性看来有待考究。
使用igbinary,内核log,输出:
kn007 kernel: php-fpm[21765]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21778]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21807]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21793]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21758]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21794]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21775]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21938]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21777]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21790]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21799]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[22791]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000] kernel: php-fpm[21797]: segfault at 10 ip 00007f3fa75dc060 sp 00007ffee413d220 error 6 in igbinary .so[7f3fa75da000+a000]
php-fpm.log出现比较多的,类似这样的提示:
WARNING: [pool www] child 21765 exited on signal 11 (SIGSEGV) after 47.779352 seconds from start
内核core dump输出:
... Core was generated by `php-fpm: pool www '. Program terminated with signal 11, Segmentation fault. #0 0x00007f10e829f060 in igbinary_serialize_ex (ret=0x7ffe09d032c0, ret_len=0x10, z=0x7f10ed818db0, memory_manager=0x0) at /data/src/igbinary7/igbinary.c:433 433 *ret_len = igsd.buffer_size - 1; Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.el6_0.x86_64 cyrus-sasl-lib-2.1.23-15.el6_6.2.x86 _64 glibc-2.12-1.166.el6_7.3.x86_64 libgcc-4.4.7-16.el6.x86_64 libidn-1.18-2.el6.x86_64 libmcrypt-2.5.8-9.el6.x86_64 lib png-1.2.49-2.el6_7.x86_64 libstdc++-4.4.7-16.el6.x86_64 nspr-4.10.8-2.el6_7.x86_64 nss-3.19.1-5.el6_7.x86_64 nss-softokn -freebl-3.14.3-23.el6_7.x86_64 nss-util-3.19.1-2.el6_7.x86_64 openldap-2.4.40-7.el6_7.x86_64 zlib-1.2.3-29.el6.x86_64
已经附加到issue后面了。继续等待官方回复,希望给力啊。
WordPress Object Cache使用Memcached扩展,现在已经不再报错了。奇怪,难道真有所谓旧数据?!问题是重启过memcache和php的。
msgpack还是被弃用了。。囧。感觉不大用得上。而且最少扩展才能排查出问题来。
说了这么多不好的,说点好的,PHP7性能确实大大地提高了,而且内存占用小了。
PS:以上因为在生产环境,所以没安装gdb所需的debuginfo组件。
最后最后,希望不要再见到Segmentation fault了。
转载请注明转自:kn007的个人博客的《PHP7莫名其妙的问题》
sofa!!! 第一次这么快
@小可: 早起的鸟
@kn007: 在上班
@小可: 辛苦辛苦,多留言看看,还会不会触发奔溃咧。
@kn007: 测试2:今天宠儿也起的比较早
@kn007: 测试3:所以今年早起的鸟儿有虫吃
@kn007: 测试4:但是不知道这虫儿好吃不好吃
@kn007: 虫儿说:貌似崩溃不多,很少碰到
@小可: 谢谢,不是应该是鸟儿说么
@小可: 确定不是sendmail_path的问题。wp_mail的问题,要一层层拨开。。或者出现问题,找鸟哥定位问题。
@kn007: sendmail_path一加回去就会偶尔崩溃,真是令人郁闷。
新年快乐!话说昨天访问的时候还提示访问量过大,是不是折腾这个的原因
@咕噜噜: 崩溃了,就会提示访问量过大 我忽悠人的。
@kn007: 太机智了。。不过试了下php7还真是快,只是自己玩儿崩了,又懒得弄了,不知道网站拖延到什么时候才能恢复
@咕噜噜: 现在php7就是有些奇怪的小问题,但是总体提升杠杠滴
我的没敢开huge page
@穹庐: 无论你怎么编译,只要系统存在hugepage,php7就会去用。令人抓急,我另外一个程序要用hugepage,被php7这么搞,反而不能把内核的hugepage开起来了。郁闷。
php7?表示我不用~~~
@姜辰:
还没试过php7 官方说php7性能可以和hhvm相媲美 有空去折腾折腾。
@技术拉近你我: 还不错。
请问PHP7对于普通的wordpress站点 有什么不兼容的地方吗?
@Summer: 没有,我就是php7+wordpress4,看你自己主题有没有过期语法,没有就没问题。起码wp自带的主题都是没问题的。
@kn007: 我的站点目前是php5.X+wordpress4 你觉得升级有没有必要了? 还是能稳定在了升级,我现在用的缓存插件。还是挺快的。
@Summer: php7提升100%以上,另外现在已经是稳定的了。上述问题,php7的都解决了。php7比php5省内存(这点很重要),处理快,能耐更多的并发攻击。一切看个人意愿。
@kn007: 我单独建了一个PHP7的环境测试了一下 目前没有任何问题。可以升级。 3Q.3Q!
@Summer: 不客气
PHP Warning: Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory (12) in Unknown on line 0。
我也出现这个问题了,
@海盗湾: 请用最新版,出现这个是没有给到hugepage,或者hugepage过小。
@kn007: 博主,我的1G内存可以启用huge_code_pages吗?我用的PHP是7.0.6版本
@海盗湾: 你跑应用后,空闲内存多少先?
一般lnmp剩下的可用内存并不多,没什么必要。