PHP-FPM 7.0 Segfault

Arieh

Verified User
Joined
May 27, 2008
Messages
1,236
Location
The Netherlands
On certain pages on a website, php-fpm crashes. I was able to enable the core dump and view it. However I don't know what to do with it next.

It seems it is missing the file /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_variables.h ?

Code:
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/php70/sbin/php-fpm70...done.
[New LWP 28676]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `php-fpm: pool kijken                                                          '.
Program terminated with signal 11, Segmentation fault.
#0  i_zval_ptr_dtor (zval_ptr=0x4) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_variables.h:56
56      /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_variables.h: No such file or directory.
(gdb) bt
#0  i_zval_ptr_dtor (zval_ptr=0x4) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_variables.h:56
#1  _zval_ptr_dtor (zval_ptr=0x4) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_execute_API.c:533
#2  0x0000000000533c15 in _php_curl_setopt (ch=ch@entry=0x7f1909777c40, option=<optimized out>, zvalue=zvalue@entry=0x7f1909777ba0) at /usr/local/directadmin/custombuild/php-7.0.8/ext/curl/interface.c:2822
#3  0x0000000000534b45 in zif_curl_setopt_array (execute_data=<optimized out>, return_value=0x7f190a418640) at /usr/local/directadmin/custombuild/php-7.0.8/ext/curl/interface.c:3015
#4  0x0000000000887b7d in ZEND_DO_FCALL_SPEC_HANDLER (execute_data=0x7f190a418410) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_vm_execute.h:842
#5  0x0000000000845230 in execute_ex (ex=<optimized out>) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_vm_execute.h:417
#6  0x0000000000895c27 in zend_execute (op_array=op_array@entry=0x7f190a478000, return_value=return_value@entry=0x0) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend_vm_execute.h:458
#7  0x00000000008075b4 in zend_execute_scripts (type=type@entry=8, retval=retval@entry=0x0, file_count=file_count@entry=3) at /usr/local/directadmin/custombuild/php-7.0.8/Zend/zend.c:1427
#8  0x00000000007a91c0 in php_execute_script (primary_file=primary_file@entry=0x7ffdbbe309c0) at /usr/local/directadmin/custombuild/php-7.0.8/main/main.c:2494
#9  0x000000000045374e in main (argc=<optimized out>, argv=<optimized out>) at /usr/local/directadmin/custombuild/php-7.0.8/sapi/fpm/fpm/fpm_main.c:1968
(gdb)
 
The .h files are likely just gdb trying to see the actual code to give you more info.
If you were to extract the php-7.0.8.tar.gz file, it might show you the specific line of code.

In any case, it looks like the segfault is happening during something curl related.
Try upgrading, or possibly even downgrading curl, to see if that resolves the segfault.
Code:
./build update
./build curl
./build php n
To change the curl version, if you need to go down:
http://help.directadmin.com/item.php?id=565

John
 
Just in case anyone else finds this, have not found a solution. Rolling back curl had no effect.

I have asked the client to narrow down the code that causes this but that's where the story ends for now (it's in a magento site with plugins etc so not that easy).
 
I was able to make the modification of the fix and recompile. All works fine! :)

In case anyone wants to know how (if you can't wait for the new release), let me know.
 
Back
Top