ID:               30128
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dankab at infinito dot it
-Status:           Open
+Status:           Feedback
 Bug Type:         Zend Engine 2 problem
 Operating System: linux
 PHP Version:      5.0.1
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.0-win32-latest.zip

Seems to be fixed, please try CVS snapshot.


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

[2004-10-13 22:52:40] [EMAIL PROTECTED]

Not Apache-specific.  Here's the backtrace into Zend from the cli:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 182931956288 (LWP 3400)]
zend_std_read_property (object=0x8db218, member=0x8e5680,
type=9213224)
    at /local/jorton/php/HEAD64/Zend/zend_object_handlers.c:222
222             use_get = (zobj->ce->__get && !zobj->in_get);
(gdb) where
#0  zend_std_read_property (object=0x8db218, member=0x8e5680,
type=9213224)
    at /local/jorton/php/HEAD64/Zend/zend_object_handlers.c:222
#1  0x00000000005cae4e in execute (op_array=0x7fbfff56d8) at
zend_vm_handlers.h:1469
#2  0x00000000005d49ea in execute (op_array=0x7ac168) at
zend_vm_handlers.h:2242
#3  0x0000000000589db4 in zend_execute_scripts (type=8, retval=0x0,
file_count=3)
    at /local/jorton/php/HEAD64/Zend/zend.c:1053
#4  0x000000000055762f in php_execute_script
(primary_file=0x7fbfffb630)
    at /local/jorton/php/HEAD64/main/main.c:1635
#5  0x00000000005f104d in main (argc=3, argv=0x7fbfffb798)
    at /local/jorton/php/HEAD64/sapi/cli/php_cli.c:943
(gdb) backtrace full
#0  zend_std_read_property (object=0x8db218, member=0x8e5680,
type=9213224)
    at /local/jorton/php/HEAD64/Zend/zend_object_handlers.c:222
        zobj = (zend_object *) 0xffffffff
        tmp_member = {value = {lval = 1, dval =
4.9406564584124654e-324, str = {
      val = 0x1 <Address 0x1 out of bounds>, len = 2}, ht = 0x1, obj =
{handle = 1,
      handlers = 0x2}}, refcount = 0, type = 0 '\0', is_ref = 0 '\0'}
        retval = (zval **) 0x58f2b7
        rv = (zval *) 0x0
        property_info = (zend_property_info *) 0xffffffff
        silent = 0
        use_get = 0 '\0'
#1  0x00000000005cae4e in execute (op_array=0x7fbfff56d8) at
zend_vm_handlers.h:1469
        tmp = {value = {lval = 548682035520, dval =
2.7108494424067858e-312, str = {
      val = 0x7fbfff7140 "\030&#65533;\n\226*", len = 5723912}, ht =
0x7fbfff7140, obj = {
      handle = 3221188928, handlers = 0x575708}}, refcount = 8044200,
type = 0 '\0',
  is_ref = 0 '\0'}
        execute_data = {opline = 0x8e5630, function_state =
{function_symbol_table = 0x8c7758,
    function = 0x8e3da8, reserved = {0x2a962e6758, 0x8e3ed0,
0x2a962e66c0, 0x58}}, fbc = 0x0,
  fbc_constructor = 0x8e0430, op_array = 0x8e3da8, object = 0x0, Ts =
0x7fbfff5660,
  CVs = 0x7fbfff5650, original_in_execution = 1 '\001', calling_scope =
0x0,
  symbol_table = 0x8c7688, prev_execute_data = 0x7fbfff8ff0}
        binary_op = (int (*)(zval *, zval *, zval *)) 0
        incdec_op = 0
        prop_dim = 9328176
        type = 0
#2  0x00000000005d49ea in execute (op_array=0x7ac168) at
zend_vm_handlers.h:2242
        calling_symbol_table = (HashTable *) 0x7ac168
        execute_data = {opline = 0x8e0430, function_state =
{function_symbol_table = 0x8c7688,
    function = 0x8e3da8, reserved = {0x56f660, 0x0, 0x2a962e66c0,
0x58}}, fbc = 0x8e3da8,
  fbc_constructor = 0x8e3da8, op_array = 0x8dbd48, object = 0x8db218,
Ts = 0x7fbfff7300,
  CVs = 0x7fbfff72f0, original_in_execution = 0 '\0', calling_scope =
0x8e3788,
  symbol_table = 0x7ac168, prev_execute_data = 0x0}
        binary_op = (int (*)(zval *, zval *, zval *)) 0
        incdec_op = 0
        prop_dim = 9307184
        type = 0
#3  0x0000000000589db4 in zend_execute_scripts (type=8, retval=0x0,
file_count=3)
    at /local/jorton/php/HEAD64/Zend/zend.c:1053
        files = {{gp_offset = 40, fp_offset = 48, overflow_arg_area =
0x7fbfff9280,
    reg_save_area = 0x7fbfff9190}}
        i = 1
        file_handle = (zend_file_handle *) 0x7fbfffb630
        orig_op_array = (zend_op_array *) 0x0
        local_retval = (zval *) 0x0
#4  0x000000000055762f in php_execute_script
(primary_file=0x7fbfffb630)
    at /local/jorton/php/HEAD64/main/main.c:1635
        orig_bailout = {{__jmpbuf = {7993760, 0, 4469120, 0, 0, 0,
548682052688, 6228305},
    __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16
times>}}}}
        orig_bailout_set = 1 '\001'
        prepend_file_p = (zend_file_handle *) 0x0
        append_file_p = (zend_file_handle *) 0x0
        prepend_file = {type = 0 '\0', filename = 0x0, opened_path =
0x0, handle = {fd = 0,
    fp = 0x0, stream = {handle = 0x0, reader = 0, closer = 0,
interactive = 0}},
  free_filename = 0 '\0'}
        append_file = {type = 0 '\0', filename = 0x0, opened_path =
0x0, handle = {fd = 0,
    fp = 0x0, stream = {handle = 0x0, reader = 0, closer = 0,
interactive = 0}},
  free_filename = 0 '\0'}
        old_cwd = 0x7fbfff9288 ""
        old_primary_file_path = 0x7fbfffeaa4 "../bug30128.php"
        retval = 0
#5  0x00000000005f104d in main (argc=3, argv=0x7fbfffb798)
    at /local/jorton/php/HEAD64/sapi/cli/php_cli.c:943
        orig_bailout = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0},
__mask_was_saved = 0,
    __saved_mask = {__val = {0 <repeats 16 times>}}}}
        exit_status = 0
        c = -1
        file_handle = {type = 5 '\005', filename = 0x7fbfffa2c0
"/local/jorton/php/bug30128.php",
  opened_path = 0x0, handle = {fd = 9205152, fp = 0x8c75a0, stream =
{handle = 0x8c75a0,
      reader = 0x596c80 <zend_stream_stdio_reader>, closer = 0x596ca0
<zend_stream_stdio_closer>,
      interactive = 0}}, free_filename = 0 '\0'}
        behavior = 1
        orig_optind = 1
        orig_optarg = 0x0
        arg_free = 0x7fbfffeaa4 "../bug30128.php"
        arg_excp = (char **) 0x8c9528
        script_file = 0x7fbfffeaa4 "../bug30128.php"
        global_vars = {head = 0x0, tail = 0x0, count = 0, size = 8,
dtor = 0, persistent = 0 '\0',
  traverse_ptr = 0x411ea0}
        interactive = 0
        module_started = 1
        lineno = 1
        exec_direct = 0x0
        exec_run = 0x0
        exec_begin = 0x0
        exec_end = 0x0
        param_error = 0x0
        hide_argv = 0


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

[2004-09-17 10:09:12] dankab at infinito dot it

Description:
------------
[sorry for my english]

the code below cause a segmentation fault in apache 2
i try to use a parent variable in the catch statement of the second
child
if i use the same variable in the first child it's seems to work

Reproduce code:
---------------
class A {       
        public $myVar = "";
        function __construct() {
                try     {
                        $this->test();
                }       
                catch(Exception $e)     {
                        throw $e;
                }
        }
        
        public function test() {
                $this->myVar = "something<br>";
                if(0!=1) throw new Exception("ERROR",100);
        }
}

class B extends A { 
        function __construct() {
                try     {
                        parent::__construct();
                }
                catch(Exception $e)     {
                        throw $e;       
                }       
        }       
}

class C extends B { 
        function __construct() {
                try     {
                        parent::__construct();
                }
                catch(Exception $e)     {
                        echo $this->myVar;
                        throw $e;       
                }       
        }       
}

try {
        $c = new C();
}
catch(Exception $e) {
        echo $e->getMessage();
}

Expected result:
----------------
printing of:
something
ERROR

Actual result:
--------------
segmentation fault in apache 2

[notice] child pid 12938 exit signal Segmentation fault (11)


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


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

Reply via email to