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