ID: 17419 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Suspended +Status: Open -Bug Type: Session related +Bug Type: Documentation problem Operating System: BSDi PHP Version: 4.2.1 New Comment:
Reclassified as a documentation problem after a nice discussion with Markus :) Previous Comments: ------------------------------------------------------------------------ [2002-06-01 07:03:28] [EMAIL PROTECTED] Suspending. ------------------------------------------------------------------------ [2002-06-01 06:43:25] [EMAIL PROTECTED] I checked back with Zeev, circular references are simlpy not supported in the Zend engine and won't be anytime soon. ------------------------------------------------------------------------ [2002-06-01 06:19:11] [EMAIL PROTECTED] Circular references don't work with the serializer ------------------------------------------------------------------------ [2002-06-01 06:14:21] [EMAIL PROTECTED] Consider the following sample script: <?php session_start(); class alpha { var $b; function alpha() { $this->b = &new beta(&$this); } } class beta { function beta($t) { $this->t = &$t; } } if($_GET['set']) { $_SESSION['a'] = &new alpha(); } else { print_r($_SESSION['a']); } ?> First, call this script with ?set=1. Then, call it without any arguments and nothing will happen. The connection will close inmediately: $ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /test.php?PHPSESSID=dcfffa113d892c4320d6109c6bd07795 HTTP/1.1 Host: localhost Connection closed by foreign host. This was exactly what happend with the sample simpleclass.php script provided by [EMAIL PROTECTED] Apache logs show a couple of memleaks and a segfault: home/sander/php/head/Zend/zend_hash.c(262) : Freeing 0x0821CD4C (37 bytes), script=/home/sander/public_html/test.php Last leak repeated 1 time /home/sander/php/head/Zend/zend_hash.c(178) : Freeing 0x0821B1BC (32 bytes), script=/home/sander/public_html/test.php Last leak repeated 1 time /home/sander/php/head/Zend/zend_API.c(597) : Freeing 0x0821B15C (44 bytes), script=/home/sander/public_html/test.php /home/sander/php/head/Zend/zend_API.c(585) : Actual location (location was relayed) Last leak repeated 1 time /home/sander/php/head/Zend/zend_execute.c(1937) : Freeing 0x0821B11C (12 bytes), script=/home/sander/public_html/test.php Last leak repeated 1 time /home/rasmus/php4/ext/standard/url_scanner_ex.re(409) : Freeing 0x08219B6C (13 bytes), script=/home/sander/public_html/test.php [Sat Jun 1 12:06:13 2002] [notice] child pid 4079 exit signal Segmentation fault (11) Backtrace: Program received signal SIGSEGV, Segmentation fault. 0x4010cf96 in malloc () from /lib/libc.so.6 (gdb) bt #0 0x4010cf96 in malloc () from /lib/libc.so.6 #1 0x403d9a4f in _emalloc (size=35, __zend_filename=0x404b0c80 "/home/sander/php/head/Zend/zend_hash.c", __zend_lineno=406, __zend_orig_filename=0x0, __zend_orig_lineno=0) at /home/sander/php/head/Zend/zend_alloc.c:165 #2 0x403f46cc in zend_hash_index_update_or_next_insert (ht=0xbfffef34, h=23815, pData=0xbf800108, nDataSize=4, pDest=0x0, flag=4) at /home/sander/php/head/Zend/zend_hash.c:406 #3 0x4038f81a in php_add_var_hash (var_hash=0xbfffef34, var=0x8219b9c, var_old=0xbf800264) at /home/sander/php/head/ext/standard/var.c:393 #4 0x4038ed6e in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219b10, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:497 #5 0x4038f277 in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219d00, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:606 #6 0x4038f277 in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219b10, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:606 #7 0x4038f277 in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219d00, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:606 #8 0x4038f277 in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219b10, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:606 #9 0x4038f277 in php_var_serialize_intern (buf=0xbfffef60, struc=0x8219d00, var_hash=0xbfffef34) at /home/sander/php/head/ext/standard/var.c:606 etc etc etc ------------------------------------------------------------------------ [2002-05-31 09:51:02] [EMAIL PROTECTED] Also worked fine on my OSX boxen. I don't know what browser you are using so I can't comment on the validity of that error message (possible MSIE pretty error page?). One thing to try, turn on your register_globals. Your example kind of needs that, or different calling methods. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/17419 -- Edit this bug report at http://bugs.php.net/?id=17419&edit=1