Bug #60990 [Com]: Segfault when trying to allocate more memory
| From: | stefan at nopiracy dot de | Date: | Mon, 06 Feb 2012 14:49:15 +0000 |
| Subject: | Bug #60990 [Com]: Segfault when trying to allocate more memory | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-167214@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=60990&edit=1
ID: 60990
Comment by: stefan at nopiracy dot de
Reported by: flatline at hardwired dot hu
Summary: Segfault when trying to allocate more memory
Status: Open
Type: Bug
Package: FPM related
Operating System: Debian Squeeze x86_64
PHP Version: 5.3.10
Block user comment: N
Private report: N
New Comment:
Because you are running Suhosin you will most probably get no help here.
Anyway to increase your chances try the following:
restart PHP with the environment variable
SUHOSIN_MM_USE_CANARY_PROTECTION=0
If you do this then PHP will no longer use the memory allocator with carnaries,
but use the normal one which is nearly identical to the vanilla one.
Check if that gives you a similar backtrace.
The code is obviously crashing while shutting down the system.
There is a NULL pointer dereference.
And the code triggering this is:
zend_hash_graceful_reverse_destroy(&EG(symbol_table));
This means something is corrupt in the symbol_table.
Do you have NO PHP code running on the system? Or does it crash always? Or...?
Previous Comments:
------------------------------------------------------------------------
[2012-02-06 13:15:14] flatline at hardwired dot hu
Description:
------------
Kernel: 2.6.32.50 with Grsecurity+PAX
PHP Version 5.3.10-1~dotdeb.1
Grsecurity/PAX installed
Additional .ini files parsed /etc/php5/fpm/conf.d/apc.ini, /etc/php5/fpm/conf.d/curl.ini,
/etc/php5/fpm/conf.d/gd.ini, /etc/php5/fpm/conf.d/imagick.ini, /etc/php5/fpm/conf.d/mysql.ini,
/etc/php5/fpm/conf.d/mysqli.ini, /etc/php5/fpm/conf.d/pdo.ini, /etc/php5/fpm/conf.d/pdo_mysql.ini,
/etc/php5/fpm/conf.d/pdo_sqlite.ini, /etc/php5/fpm/conf.d/sqlite.ini,
/etc/php5/fpm/conf.d/sqlite3.ini, /etc/php5/fpm/conf.d/suhosin.ini
Test script:
---------------
-
Expected result:
----------------
-
Actual result:
--------------
gdb /usr/sbin/php5-fpm ./core-phpfpm
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 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/sbin/php5-fpm...Reading symbols from
/usr/lib/debug/usr/sbin/php5-fpm...done.
(no debugging symbols found)...done.
Reading symbols from /lib/libcrypt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /usr/lib/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libonig.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libonig.so.2
Reading symbols from /usr/lib/libcrypto.so.0.9.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.8
Reading symbols from /usr/lib/libssl.so.0.9.8...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libssl.so.0.9.8
Reading symbols from /usr/lib/libdb-4.8.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libdb-4.8.so
Reading symbols from /usr/lib/libqdbm.so.14...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libqdbm.so.14
Reading symbols from /lib/libbz2.so.1.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libbz2.so.1.0
Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /usr/lib/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5support.so.0
Reading symbols from /lib/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libkeyutils.so.1
Reading symbols from /usr/lib/php5/20090626/apc.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/apc.so
Reading symbols from /usr/lib/php5/20090626/curl.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/curl.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/curl.so
Reading symbols from /usr/lib/libcurl.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcurl.so.4
Reading symbols from /usr/lib/libidn.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libidn.so.11
Reading symbols from /usr/lib/libssh2.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libssh2.so.1
Reading symbols from /usr/lib/liblber-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblber-2.4.so.2
Reading symbols from /usr/lib/libldap_r-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libldap_r-2.4.so.2
Reading symbols from /usr/lib/libgcrypt.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgcrypt.so.11
Reading symbols from /usr/lib/libsasl2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /usr/lib/libgnutls.so.26...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgnutls.so.26
Reading symbols from /usr/lib/libgpg-error.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgpg-error.so.0
Reading symbols from /usr/lib/libtasn1.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libtasn1.so.3
Reading symbols from /usr/lib/php5/20090626/gd.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/gd.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/gd.so
Reading symbols from /usr/lib/libt1.so.5...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libt1.so.5
Reading symbols from /usr/lib/libfreetype.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libX11.so.6
Reading symbols from /usr/lib/libXpm.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXpm.so.4
Reading symbols from /lib/libpng12.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libpng12.so.0
Reading symbols from /usr/lib/libjpeg.so.62...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libjpeg.so.62
Reading symbols from /usr/lib/libxcb.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxcb.so.1
Reading symbols from /usr/lib/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libXdmcp.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /usr/lib/php5/20090626/imagick.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/imagick.so
Reading symbols from /usr/lib/libMagickWand.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libMagickWand.so.3
Reading symbols from /usr/lib/libMagickCore.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libMagickCore.so.3
Reading symbols from /usr/lib/liblcms.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblcms.so.1
Reading symbols from /usr/lib/libtiff.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libtiff.so.4
Reading symbols from /usr/lib/liblqr-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblqr-1.so.0
Reading symbols from /lib/libglib-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/libglib-2.0.so.0
Reading symbols from /usr/lib/libfontconfig.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfontconfig.so.1
Reading symbols from /usr/lib/libXext.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXext.so.6
Reading symbols from /usr/lib/libSM.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libSM.so.6
Reading symbols from /usr/lib/libICE.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libICE.so.6
Reading symbols from /usr/lib/libXt.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXt.so.6
Reading symbols from /usr/lib/libgomp.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgomp.so.1
Reading symbols from /usr/lib/libltdl.so.7...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libltdl.so.7
Reading symbols from /lib/libpcre.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/libpcre.so.3
Reading symbols from /usr/lib/libexpat.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libexpat.so.1
Reading symbols from /lib/libuuid.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libuuid.so.1
Reading symbols from /usr/lib/php5/20090626/mysql.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/mysql.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/mysql.so
Reading symbols from /usr/lib/php5/20090626/mysqli.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/mysqli.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/mysqli.so
Reading symbols from /usr/lib/php5/20090626/pdo.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/pdo.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/pdo.so
Reading symbols from /usr/lib/php5/20090626/pdo_mysql.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/pdo_mysql.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/pdo_mysql.so
Reading symbols from /usr/lib/php5/20090626/pdo_sqlite.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/pdo_sqlite.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/pdo_sqlite.so
Reading symbols from /usr/lib/libsqlite3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsqlite3.so.0
Reading symbols from /usr/lib/php5/20090626/sqlite.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/sqlite.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/sqlite.so
Reading symbols from /usr/lib/libsqlite.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libsqlite.so.0
Reading symbols from /usr/lib/php5/20090626/sqlite3.so...Reading symbols from
/usr/lib/debug/usr/lib/php5/20090626/sqlite3.so...done.
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/sqlite3.so
Reading symbols from /usr/lib/php5/20090626/suhosin.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/php5/20090626/suhosin.so
Reading symbols from /lib/libnss_files.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /lib/libnss_compat.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnss_nis.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_nis.so.2
Reading symbols from /usr/lib/gconv/ISO8859-2.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/gconv/ISO8859-2.so
Core was generated by `php-fpm: pool xxxxx '.
Program terminated with signal 11, Segmentation fault.
#0 zend_mm_remove_from_free_list (heap=0xe40ab0, mm_block=0x1c85988) at
/usr/src/php5/source/php5-5.3.10/Zend/zend_alloc_canary.c:880
880 /usr/src/php5/source/php5-5.3.10/Zend/zend_alloc_canary.c: No such file or directory.
in /usr/src/php5/source/php5-5.3.10/Zend/zend_alloc_canary.c
(gdb) bt
#0 zend_mm_remove_from_free_list (heap=0xe40ab0, mm_block=0x1c85988) at
/usr/src/php5/source/php5-5.3.10/Zend/zend_alloc_canary.c:880
#1 0x00000000006e4738 in _zend_mm_free_canary_int (heap=0xe40ab0, p=0x1c85960) at
/usr/src/php5/source/php5-5.3.10/Zend/zend_alloc_canary.c:2133
#2 0x00000000006d0712 in zend_hash_apply_deleter (ht=0xe31168, p=0x1126638) at
/usr/src/php5/source/php5-5.3.10/Zend/zend_hash.c:814
#3 0x00000000006d0998 in zend_hash_graceful_reverse_destroy (ht=0xe31168) at
/usr/src/php5/source/php5-5.3.10/Zend/zend_hash.c:850
#4 0x00000000006b7b0e in shutdown_executor () at
/usr/src/php5/source/php5-5.3.10/Zend/zend_execute_API.c:256
#5 0x00000000006c4762 in zend_deactivate () at /usr/src/php5/source/php5-5.3.10/Zend/zend.c:963
#6 0x000000000066f3e5 in php_request_shutdown (dummy=0xe40ab0) at
/usr/src/php5/source/php5-5.3.10/main/main.c:1664
#7 0x0000000000758ca0 in main (argc=18462176, argv=0x119c2f0) at
/usr/src/php5/source/php5-5.3.10/sapi/fpm/fpm/fpm_main.c:1886
(gdb) x/8i $pc
0x6e4178 <zend_mm_remove_from_free_list+104>: cmp (%rax),%rdx
0x6e417b <zend_mm_remove_from_free_list+107>: jne 0x6e4333
<zend_mm_remove_from_free_list+547>
0x6e4181 <zend_mm_remove_from_free_list+113>: mov %ecx,%ecx
0x6e4183 <zend_mm_remove_from_free_list+115>: movq $0x0,(%rax)
0x6e418a <zend_mm_remove_from_free_list+122>: lea 0x698(%rdi,%rcx,8),%rax
0x6e4192 <zend_mm_remove_from_free_list+130>: cmp %rax,0x38(%rdx)
0x6e4196 <zend_mm_remove_from_free_list+134>: je 0x6e41a0
<zend_mm_remove_from_free_list+144>
0x6e4198 <zend_mm_remove_from_free_list+136>: add $0x8,%rsp
(gdb) x/8x $sp
0x3be1991dad0: 0x01c85960 0x00000000 0x006e4738 0x00000000
0x3be1991dae0: 0x00e31168 0x00000000 0x01126638 0x00000000
(gdb) info reg
rax 0x0 0
rbx 0xe40ab0 14944944
rcx 0x9 9
rdx 0x1c85988 29907336
rsi 0x1c85988 29907336
rdi 0xe40ab0 14944944
rbp 0x1c85960 0x1c85960
rsp 0x3be1991dad0 0x3be1991dad0
r8 0x1c85988 29907336
r9 0x10cf050 17625168
r10 0x33eae48be90 3567746858640
r11 0x33eae1ac5ae 3567743845806
r12 0x1c85938 29907256
r13 0x1c85988 29907336
r14 0x50 80
r15 0x104a140 17080640
rip 0x6e4178 0x6e4178 <zend_mm_remove_from_free_list+104>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
fctrl 0x27f 639
fstat 0x0 0
ftag 0xffff 65535
fiseg 0x0 0
fioff 0x6c2150 7086416
foseg 0x3be 958
fooff 0x1991b460 428979296
fop 0x0 0
mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60990&edit=1