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

Reply via email to