From: geoffers+phpbugs at gmail dot com
Operating system: Debian Etch
PHP version: 5.2CVS-2009-02-08 (CVS)
PHP Bug Type: Reproducible crash
Bug description: Calling gc_collect_cycles() with zend.enable_gc=0 causes
segfault
Description:
------------
When running PHP with zend.enable_gc=0, a segfault occurs when trying to
call gc_collect_cycles().
This is on Debian Etch, with everything apart from PHP 5.3 from the
Debian stable repositories. PHP 5.3 was compiled with:
'./configure' '--enable-bcmath' '--enable-calendar' '--with-zlib-
dir=/usr' '--with-gd' '--with-apxs2=/usr/bin/apxs2' '--with-curl=/usr'
'--without-pear' '--enable-mbstring' '--enable-debug'
I have only tested through the CLI using -d zend.enable_gc=0.
Reproduce code:
---------------
<?php
gc_collect_cycles();
?>
Expected result:
----------------
I would expect that PHP didn't crash!
Beyond that, I'd expect the result to be the same as the following when
zend.enable_gc=1:
<?php
gc_disable();
gc_collect_cycles();
?>
which is to say that it silently fails (and returns 0).
Actual result:
--------------
Segfault:
#0 0x08449a83 in gc_mark_roots () at /root/php5/Zend/zend_gc.c:363
#1 0x0844a05e in gc_collect_cycles () at
/root/php5/Zend/zend_gc.c:539
#2 0x08439ab6 in zif_gc_collect_cycles (ht=0,
return_value=0xb79301ac, return_value_ptr=0x0, this_ptr=0x0,
return_value_used=0)
at /root/php5/Zend/zend_builtin_functions.c:336
#3 0x084536a5 in zend_do_fcall_common_helper_SPEC
(execute_data=0xb77b8048) at /root/php5/Zend/zend_vm_execute.h:313
#4 0x084581ea in ZEND_DO_FCALL_SPEC_CONST_HANDLER
(execute_data=0xb77b8048) at /root/php5/Zend/zend_vm_execute.h:1564
#5 0x08452ae2 in execute (op_array=0xb79307d8) at
/root/php5/Zend/zend_vm_execute.h:104
#6 0x084286de in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /root/php5/Zend/zend.c:1181
#7 0x083bce0c in php_execute_script (primary_file=0xbfb8bce4) at
/root/php5/main/main.c:2147
#8 0x084b8e4b in main (argc=4, argv=0xbfb8be34) at
/root/php5/sapi/cli/php_cli.c:1159
--
Edit bug report at http://bugs.php.net/?id=47341&edit=1
--
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=47341&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=47341&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=47341&r=trysnapshot60
Fixed in CVS:
http://bugs.php.net/fix.php?id=47341&r=fixedcvs
Fixed in CVS and need be documented:
http://bugs.php.net/fix.php?id=47341&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=47341&r=alreadyfixed
Need backtrace:
http://bugs.php.net/fix.php?id=47341&r=needtrace
Need Reproduce Script:
http://bugs.php.net/fix.php?id=47341&r=needscript
Try newer version:
http://bugs.php.net/fix.php?id=47341&r=oldversion
Not developer issue:
http://bugs.php.net/fix.php?id=47341&r=support
Expected behavior:
http://bugs.php.net/fix.php?id=47341&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=47341&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=47341&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=47341&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=47341&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=47341&r=dst
IIS Stability:
http://bugs.php.net/fix.php?id=47341&r=isapi
Install GNU Sed:
http://bugs.php.net/fix.php?id=47341&r=gnused
Floating point limitations:
http://bugs.php.net/fix.php?id=47341&r=float
No Zend Extensions:
http://bugs.php.net/fix.php?id=47341&r=nozend
MySQL Configuration Error:
http://bugs.php.net/fix.php?id=47341&r=mysqlcfg