ID: 11617
User Update by: [EMAIL PROTECTED]
Old-Status: Feedback
Status: Open
Bug Type: *Session related
Operating system: Linux 2.2.16 (Cobalt Raq4)
PHP Version: 4.0 Latest CVS (2001-06-22)
Description: crash when restoring references

I've messed up something with my versions. Recompiled good and now it looks like it 
works fine. Sorry for confusion.

Zork



Previous Comments:
---------------------------------------------------------------------------

[2001-06-24 11:59:13] [EMAIL PROTECTED]
And the GDB backtrace is where? Please include it.


---------------------------------------------------------------------------

[2001-06-24 11:29:39] [EMAIL PROTECTED]
Tried, but php still changed. Maybe it is something with CVS (forgot to commit?), I've 
checked session.c revision and result was:

revision 1.213
date: 2001/06/21 18:46:25;  author: thies;  state: Exp;  lines: +31 -26

I've submitted this bug later.

Zork

---------------------------------------------------------------------------

[2001-06-23 17:34:50] [EMAIL PROTECTED]
Could you please try again? The fix wasn't ok, but now
it's been rewritten and should work.

If it still crashes, try to generate a gdb backtrace of
the crash. And thank you for helping!

--Jani
 

---------------------------------------------------------------------------

[2001-06-22 11:01:25] [EMAIL PROTECTED]
There is still problem in serialize/unserialize mechanism  used to restore session 
variables(after closing #8676 bug which was supoused to correct the problem). Here is 
simplest script I can produce that does apache segfault on my machine:

<?
class Cscreen {
        var $page;
        var $frames;

        function Cscreen() {
                $this -> frames = array();
        }
};

class CError_handler {
        var $msg_error;
        
        function CError_handler() {
                $this -> msg_error = new CMessage();
        }
};

class CConnection_Table {
        var $data;
        
        function CConnection_table() {
                $this -> data = array();
        }
        
        function mconnect($message,&$object,$method) {
                $data[0] = &$object;
                $data[1] = $method;
                $this -> data[$message -> msg_id][] = $data;
        }
};

class CMessage {
        var $data;
        var $msg_id;
        
        function CMessage($data = 0) {
                global $__CMSGID_NEXT;
                $this -> msg_id = $__CMSGID_NEXT++;
                $this -> data = $data;
        }
};

function MCONNECT(&$message,&$obj_name,$method_name) {
        global $__connection_table;
        $__connection_table -> mconnect($message,$obj_name,$method_name);
};

session_start();
session_destroy();
$__connection_table = new CConnection_table;
session_register("__connection_table");

$screen = new Cscreen();
session_register("screen");

$error_handler = new CError_handler($screen);
MCONNECT($error_handler -> msg_error,$screen,"fatal_error");
session_register("error_handler");
echo "done";
exit();



---------------------------------------------------------------------------


Full Bug description available at: http://bugs.php.net/?id=11617


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to