ID:               24708
 Updated by:       [EMAIL PROTECTED]
 Reported By:      auroraeosrose at hotmail dot com
-Status:           Open
+Status:           Verified
-Bug Type:         Reproducible crash
+Bug Type:         Zend Engine 2 problem
-Operating System: Windows XP Pro SP1
+Operating System: *
-PHP Version:      5CVS-2003-07-18 (dev)
+PHP Version:      5.0.0b2-dev
 New Comment:

Backtrace (with CLI):

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (runnable)]
0x81d30d1 in zend_objects_destroy_object (object=0x402a3230, handle=1)
at /usr/src/web/php/php5/Zend/zend_objects.c:44
44                      if (destructor->op_array.fn_flags &
(ZEND_ACC_PRIVATE|ZEND_ACC_PROTECTED)) {
(gdb) bt
#0  0x81d30d1 in zend_objects_destroy_object (object=0x402a3230,
handle=1)
    at /usr/src/web/php/php5/Zend/zend_objects.c:44
#1  0x81d5a6f in zend_objects_store_del_ref (zobject=0x4029d3ac) at
/usr/src/web/php/php5/Zend/zend_objects_API.c:142
#2  0x81bf7e2 in _zval_dtor (zvalue=0x4029d3ac, 
    __zend_filename=0x822a640
"/usr/src/web/php/php5/Zend/zend_execute_API.c", __zend_lineno=344)
    at /usr/src/web/php/php5/Zend/zend_variables.c:61
#3  0x81b463d in _zval_ptr_dtor (zval_ptr=0x402a3784, 
    __zend_filename=0x822ae40
"/usr/src/web/php/php5/Zend/zend_variables.c", __zend_lineno=165)
    at /usr/src/web/php/php5/Zend/zend_execute_API.c:344
#4  0x81bfb24 in _zval_ptr_dtor_wrapper (zval_ptr=0x402a3784) at
/usr/src/web/php/php5/Zend/zend_variables.c:165
#5  0x81c8a9c in zend_hash_destroy (ht=0x402a36c0) at
/usr/src/web/php/php5/Zend/zend_hash.c:509
#6  0x81bf7a9 in _zval_dtor (zvalue=0x402a3640, 
    __zend_filename=0x822a640
"/usr/src/web/php/php5/Zend/zend_execute_API.c", __zend_lineno=266)
    at /usr/src/web/php/php5/Zend/zend_variables.c:52
#7  0x81b4346 in shutdown_executor () at
/usr/src/web/php/php5/Zend/zend_execute_API.c:266
#8  0x81c14b8 in zend_deactivate () at
/usr/src/web/php/php5/Zend/zend.c:795
#9  0x817b91b in php_request_shutdown (dummy=0x0) at
/usr/src/web/php/php5/main/main.c:1174
#10 0x81eecff in main (argc=2, argv=0xbffff694) at
/usr/src/web/php/php5/sapi/cli/php_cli.c:1018
#11 0x401b19cb in __libc_start_main (main=0x81eda64 <main>, argc=2,
argv=0xbffff694, init=0x806aefc <_init>, 
    fini=0x81ef644 <_fini>, rtld_fini=0x4000aea0 <_dl_fini>,
stack_end=0xbffff68c)
    at ../sysdeps/generic/libc-start.c:92



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

[2003-07-18 14:54:05] auroraeosrose at hotmail dot com

Oh, btw, using $error = &new Error(); makes no difference, the
script(and php, and apache) crash exactly the same way.  Other
functions, echoes, etc. that I've tried work fine in the destructor.

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

[2003-07-18 14:26:49] auroraeosrose at hotmail dot com

Description:
------------
Latest php snap of 5.0
Apache 2 filter
mb_string, gd, mssql, and mysql only dll's loaded

Error handler class - constructor calls set_error_handler and works
just fine, descructor calls restore_error_handler and the server
crashes nicely - not only the phpdll but all of apache as well in a
second message.  I have some dump files if you need them, just leave a
message.

Reproduce code:
---------------
<?php
class Error
{
        function __construct()
        {
                set_error_handler(array(&$this, 'handler'));
        }

        function __destruct()
        {
                restore_error_handler();
        }

        function handler($no, $str, $file, $line, $ctx)
        {
                echo '<pre>';
                echo 'no   : ' . $no . "\n";
                echo 'str  : ' . $str . "\n";
                echo 'file : ' . $file . "\n";
                echo 'line : ' . $line . "\n";
                echo 'ctx  : ';
                print_r($ctx);
                echo '</pre>';
        }

}

$error = new error();
echo $dog;

?> 

Expected result:
----------------
no   : 8
str  : Undefined variable:  dog
file : ****/test.php
line : 29
ctx  : Array
(
    [GLOBALS] => Array
 *RECURSION*
    [_POST] => Array
        (
        )

    [_GET] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [error] => error Object
        (
        )

)

Actual result:
--------------
Comment out the restore_error_handler and it works jim dandy


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


-- 
Edit this bug report at http://bugs.php.net/?id=24708&edit=1

Reply via email to