That makes PEAR installer coredump with the following core:

Core was generated by `/data/src/php5/sapi/cli/php -n -dsafe_mode 0
/data/src/php5/pear/install-pear.php'.

#0  0x08142d78 in _efree (ptr=0x400b396c,
    __zend_filename=0x81a89e0
"/data/src/php5/Zend/zend_execute_API.c",
    __zend_lineno=332,
    __zend_orig_filename=0x81a95e0
"/data/src/php5/Zend/zend_variables.c",
    __zend_orig_lineno=44) at /data/src/php5/Zend/zend_alloc.c:242
242             REMOVE_POINTER_FROM_LIST(p);
(gdb) bt
#0  0x08142d78 in _efree (ptr=0x400b396c,
    __zend_filename=0x81a89e0
"/data/src/php5/Zend/zend_execute_API.c",
    __zend_lineno=332,
    __zend_orig_filename=0x81a95e0
"/data/src/php5/Zend/zend_variables.c",
    __zend_orig_lineno=44) at /data/src/php5/Zend/zend_alloc.c:242
#1  0x08154de0 in _zval_dtor (zvalue=0x400b39a8,
    __zend_filename=0x81a89e0
"/data/src/php5/Zend/zend_execute_API.c",
    __zend_lineno=332) at /data/src/php5/Zend/zend_variables.c:44
#2  0x0814c1f8 in _zval_ptr_dtor (zval_ptr=0x400b39f8,
    __zend_filename=0x81a95e0
"/data/src/php5/Zend/zend_variables.c",
    __zend_lineno=164) at /data/src/php5/Zend/zend_execute_API.c:332
#3  0x08155077 in _zval_ptr_dtor_wrapper (zval_ptr=0x400b39f8)
    at /data/src/php5/Zend/zend_variables.c:164
#4  0x0815c18d in zend_hash_destroy (ht=0x400b33d4)
    at /data/src/php5/Zend/zend_hash.c:541
#5  0x0814ecef in destroy_zend_class (pce=0x81efa84)
    at /data/src/php5/Zend/zend_opcode.c:120
#6  0x0815c18d in zend_hash_destroy (ht=0x81c0984)
    at /data/src/php5/Zend/zend_hash.c:541
#7  0x0815613a in zend_shutdown () at /data/src/php5/Zend/zend.c:674
#8  0x081229eb in php_module_shutdown () at
/data/src/php5/main/main.c:1346
#9  0x08172b97 in main (argc=7, argv=0xbffff9c4)
    at /data/src/php5/sapi/cli/php_cli.c:813
#10 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6

Edin
----- Original Message -----
From: "Stanislav Malyshev" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, January 29, 2003 3:33 PM
Subject: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_execute_API.c


> stas Wed Jan 29 09:33:18 2003 EDT
>
>   Modified files:
>     /ZendEngine2 zend_execute_API.c
>   Log:
>   Fix object destructors:
>   zend_objects_store_call_destructors is not used anymore, we rely
on
>   symbol tables cleaners to destroy all objects.
>
>
> Index: ZendEngine2/zend_execute_API.c
> diff -u ZendEngine2/zend_execute_API.c:1.189
ZendEngine2/zend_execute_API.c:1.190
> --- ZendEngine2/zend_execute_API.c:1.189 Thu Jan 23 00:15:42 2003
> +++ ZendEngine2/zend_execute_API.c Wed Jan 29 09:33:18 2003
> @@ -189,15 +189,23 @@
>  void shutdown_executor(TSRMLS_D)
>  {
>   zend_try {
> - zend_objects_store_call_destructors(&EG(objects_store)
TSRMLS_CC);
> -
>   zend_ptr_stack_destroy(&EG(arg_types_stack));
> -
> - while (EG(symtable_cache_ptr)>=EG(symtable_cache)) {
> +
> +/* Removed because this can not be safely done, e.g. in this
situation:
> +   Object 1 creates object 2
> +   Object 3 holds reference to object 2.
> +   Now when 1 and 2 are destroyed, 3 can still access 2 in its
destructor, with
> +   very problematic results */
> +/* zend_objects_store_call_destructors(&EG(objects_store)
TSRMLS_CC); */
> +
> +/* Moved after symbol table cleaners, because  some of the
cleaners can call
> +   destructors, which would use EG(symtable_cache_ptr) and thus
leave leaks */
> +/* while (EG(symtable_cache_ptr)>=EG(symtable_cache)) {
>   zend_hash_destroy(*EG(symtable_cache_ptr));
>   efree(*EG(symtable_cache_ptr));
>   EG(symtable_cache_ptr)--;
>   }
> +*/
>   zend_llist_apply(&zend_extensions, (llist_apply_func_t)
zend_extension_deactivator TSRMLS_CC);
>
>   zend_hash_destroy(&EG(symbol_table));
> @@ -217,6 +225,12 @@
>   } else {
>   zend_hash_reverse_apply(EG(function_table), (apply_func_t)
is_not_internal_function TSRMLS_CC);
>   zend_hash_reverse_apply(EG(class_table), (apply_func_t)
is_not_internal_class TSRMLS_CC);
> + }
> +
> + while (EG(symtable_cache_ptr)>=EG(symtable_cache)) {
> + zend_hash_destroy(*EG(symtable_cache_ptr));
> + efree(*EG(symtable_cache_ptr));
> + EG(symtable_cache_ptr)--;
>   }
>   } zend_end_try();
>
>
>
>
> --
> Zend Engine CVS Mailing List (http://cvs.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to