ID: 17419
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Documentation problem
Operating System: BSDi
PHP Version: 4.2.1
New Comment:
Please further explain what circular references are so this can be
documented.
Previous Comments:
------------------------------------------------------------------------
[2002-06-01 07:12:14] [EMAIL PROTECTED]
Reclassified as a documentation problem after a nice discussion with
Markus :)
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
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
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php