Andi Gutmans wrote: > Yasuo, > > I don't quite understand. define() hasn't been changed in the Zend Engine > 1. Can you please send me a reproducing script without pg_*() which > works on 4.0.6 and crashes on 4.2.0-dev? >
It seems resources are deleted by RSHUTDOWN, but Zend is trying to delete them again. Here is what I got. Backtraces are attached. --====== Script #1 =====-- <?php function foo($path) { return fopen($path, 'r'); } define('C1', foo('/etc/passwd')); echo C1; ?> -- end -- PHP 4.0.6 (CGI): error msg Resource id #1 zend_hash.c(921) : ht=0x081df1d0 is already destroyed zend_hash.c(921) : ht=0x081df1d0 is already destroyed PHP 4.2.0/ZE1 (CLI): segfualt PHP 4.2.0/ZE2 (CLI): segfualt --===== Script #2 ======-- <?php define ("DB",pg_connect('dbname=test user=yohgaki')); pg_exec(DB,"select * from sys_session"); ?> -- end -- PHP 4.0.6 (CGI): works PHP 4.2.0/ZE1 (CLI): segfualt PHP 4.2.0/ZE2 (CLI): segfualt --===== Script #3 =====-- <?php function foo($int) { return $int; } define('C1', foo(100)); echo C1; ?> -- end -- PHP 4.0.6 (CGI): works PHP 4.2.0/ZE1 (CLI): works PHP 4.2.0/ZE2 (CLI): works -- Yasuo Ohgaki
============ Script #1 - PHP 4.2.0/ZE1 ============================= #0 0x0809089b in zend_hash_index_find (ht=0x8250124, h=1, pData=0xbfffe700) at zend_hash.c:935 935 if ((p->h == h) && (p->nKeyLength == 0)) { (gdb) bt #0 0x0809089b in zend_hash_index_find (ht=0x8250124, h=1, pData=0xbfffe700) at zend_hash.c:935 #1 0x0809158f in _zend_list_delete (id=1) at zend_list.c:53 #2 0x08087af2 in _zval_dtor (zvalue=0x82d66a0, __zend_filename=0x820dcdc "zend_constants.c", __zend_lineno=32) at zend_variables.c:64 #3 0x081b3564 in free_zend_constant (c=0x82d66a0) at zend_constants.c:32 #4 0x0808f694 in zend_hash_del_key_or_index (ht=0x8251f08, arKey=0x82761e8 "c1", nKeyLength=3, h=193414551, flag=0) at zend_hash.c:512 #5 0x0808ffe4 in zend_hash_reverse_apply (ht=0x8251f08, apply_func=0x81b3650 <clean_non_persistent_constant>) at zend_hash.c:741 #6 0x081b3a7d in clean_non_persistent_constants () at zend_constants.c:166 #7 0x081bd9c9 in shutdown_executor () at zend_execute_API.c:199 #8 0x08089167 in zend_deactivate () at zend.c:596 #9 0x0809842b in php_request_shutdown (dummy=0x0) at main.c:738 #10 0x0807068a in main (argc=2, argv=0xbffff1bc) at php_cli.c:597 #11 0x4050f1be in __libc_start_main (main=0x806ff10 <main>, argc=2, ubp_av=0xbffff1bc, init=0x806cf1c <_init>, fini=0x81df32c <_fini>, rtld_fini=0x4000ddd0 <_dl_fini>, stack_end=0xbffff1ac) at ../sysdeps/generic/libc-start.c:129 ==================================================================== ============ Script #1 - PHP 4.2.0/ZE2 ============================= #0 0x0809262b in zend_hash_index_find (ht=0x82561b0, h=1, pData=0xbfffe740) at zend_hash.c:935 935 if ((p->h == h) && (p->nKeyLength == 0)) { (gdb) bt #0 0x0809262b in zend_hash_index_find (ht=0x82561b0, h=1, pData=0xbfffe740) at zend_hash.c:935 #1 0x0809331f in _zend_list_delete (id=1) at zend_list.c:53 #2 0x08089695 in _zval_dtor (zvalue=0x82580b0, __zend_filename=0x8213a7c "zend_constants.c", __zend_lineno=32) at zend_variables.c:63 #3 0x081b7d34 in free_zend_constant (c=0x82580b0) at zend_constants.c:32 #4 0x08091424 in zend_hash_del_key_or_index (ht=0x8255ef4, arKey=0x82d9238 "c1", nKeyLength=3, h=193414551, flag=0) at zend_hash.c:512 #5 0x08091d74 in zend_hash_reverse_apply (ht=0x8255ef4, apply_func=0x81b7e20 <clean_non_persistent_constant>) at zend_hash.c:741 #6 0x081b823d in clean_non_persistent_constants () at zend_constants.c:165 #7 0x081c26a9 in shutdown_executor () at zend_execute_API.c:219 #8 0x0808ad67 in zend_deactivate () at zend.c:610 #9 0x0809ad9b in php_request_shutdown (dummy=0x0) at main.c:738 #10 0x0807098a in main (argc=2, argv=0xbffff1fc) at php_cli.c:597 #11 0x4050f1be in __libc_start_main (main=0x8070210 <main>, argc=2, ubp_av=0xbffff1fc, init=0x806d21c <_init>, fini=0x81e44fc <_fini>, rtld_fini=0x4000ddd0 <_dl_fini>, stack_end=0xbffff1ec) at ../sysdeps/generic/libc-start.c:129 (gdb) ======================================================================= ====== Script #2 - PHP 4.2.0/ZE1 (CLI) backtrace ========= #0 0x0809089b in zend_hash_index_find (ht=0x8250124, h=1, pData=0xbfffe700) at zend_hash.c:935 935 if ((p->h == h) && (p->nKeyLength == 0)) { (gdb) bt #0 0x0809089b in zend_hash_index_find (ht=0x8250124, h=1, pData=0xbfffe700) at zend_hash.c:935 #1 0x0809158f in _zend_list_delete (id=1) at zend_list.c:53 #2 0x08087af2 in _zval_dtor (zvalue=0x82e8a10, __zend_filename=0x820dcdc "zend_constants.c", __zend_lineno=32) at zend_variables.c:64 #3 0x081b3564 in free_zend_constant (c=0x82e8a10) at zend_constants.c:32 #4 0x0808f694 in zend_hash_del_key_or_index (ht=0x8251f08, arKey=0x82e8a00 "dbconn01", nKeyLength=9, h=711615342, flag=0) at zend_hash.c:512 #5 0x0808ffe4 in zend_hash_reverse_apply (ht=0x8251f08, apply_func=0x81b3650 <clean_non_persistent_constant>) at zend_hash.c:741 #6 0x081b3a7d in clean_non_persistent_constants () at zend_constants.c:166 #7 0x081bd9c9 in shutdown_executor () at zend_execute_API.c:199 #8 0x08089167 in zend_deactivate () at zend.c:596 #9 0x0809842b in php_request_shutdown (dummy=0x0) at main.c:738 #10 0x0807068a in main (argc=2, argv=0xbffff1bc) at php_cli.c:597 #11 0x4050f1be in __libc_start_main (main=0x806ff10 <main>, argc=2, ubp_av=0xbffff1bc, init=0x806cf1c <_init>, fini=0x81df32c <_fini>, rtld_fini=0x4000ddd0 <_dl_fini>, stack_end=0xbffff1ac) at ../sysdeps/generic/libc-start.c:129 (gdb) ================================================================== =========== Script #2 - PHP 4.2.0/ZE2 (CLI) backtrace ============ #0 0x0809262b in zend_hash_index_find (ht=0x82561b0, h=1, pData=0xbfffe750) at zend_hash.c:935 935 if ((p->h == h) && (p->nKeyLength == 0)) { (gdb) bt #0 0x0809262b in zend_hash_index_find (ht=0x82561b0, h=1, pData=0xbfffe750) at zend_hash.c:935 #1 0x0809331f in _zend_list_delete (id=1) at zend_list.c:53 #2 0x08089695 in _zval_dtor (zvalue=0x82f43b8, __zend_filename=0x8213a7c "zend_constants.c", __zend_lineno=32) at zend_variables.c:63 #3 0x081b7d34 in free_zend_constant (c=0x82f43b8) at zend_constants.c:32 #4 0x08091424 in zend_hash_del_key_or_index (ht=0x8255ef4, arKey=0x82f43a8 "dbconn01", nKeyLength=9, h=711615342, flag=0) at zend_hash.c:512 #5 0x08091d74 in zend_hash_reverse_apply (ht=0x8255ef4, apply_func=0x81b7e20 <clean_non_persistent_constant>) at zend_hash.c:741 #6 0x081b823d in clean_non_persistent_constants () at zend_constants.c:165 #7 0x081c26a9 in shutdown_executor () at zend_execute_API.c:219 #8 0x0808ad67 in zend_deactivate () at zend.c:610 #9 0x0809ad9b in php_request_shutdown (dummy=0x0) at main.c:738 #10 0x0807098a in main (argc=2, argv=0xbffff20c) at php_cli.c:597 #11 0x4050f1be in __libc_start_main (main=0x8070210 <main>, argc=2, ubp_av=0xbffff20c, init=0x806d21c <_init>, fini=0x81e44fc <_fini>, rtld_fini=0x4000ddd0 <_dl_fini>, stack_end=0xbffff1fc) at ../sysdeps/generic/libc-start.c:129 (gdb) ====================================================================
-- 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]