ID: 35988 Updated by: [EMAIL PROTECTED] Reported By: screen at brainkrash dot com -Status: Assigned +Status: Closed Bug Type: Scripting Engine problem Operating System: Win32 PHP Version: 5CVS-2006-01-13 (snap) Assigned To: dmitry New Comment:
Fixed in CVS HEAD and PHP_5_1 Previous Comments: ------------------------------------------------------------------------ [2006-01-16 16:57:09] [EMAIL PROTECTED] I reprofuced the crash with Apache2 using ApacheMonitor.exe The problem is not releated to socket, but to persistent resources. Under Apache2/win32 PHP doesn't free resources on thread exit and frees them on apache shutdown using tsrm_shutdown(). But tsrm_shutdown() is called after zend_shutdown(), when "HashTable list_destructors" is already destoyed. As result we got crash trying to access "list_destructors" from "plist_entry_destructor". ------------------------------------------------------------------------ [2006-01-13 04:49:13] [EMAIL PROTECTED] Dmitry, can you take a look? ------------------------------------------------------------------------ [2006-01-13 03:37:39] screen at brainkrash dot com All my php dlls are isolated in a directory extracted from the zip distribution. The trace debug log shows all dlls loaded from the appropriate locations. Loaded symbols for 'C:\apache\php\php5apache2.dll' Loaded symbols for 'C:\apache\php\php5ts.dll' Loaded 'C:\apache\php\ext\php_sockets.dll', no matching symbolic information found. I've tested this with all of zend extensions disabled (sometimes i use xdebug) as well as all extensions disabled with the exception of php_sockets.dll. ------------------------------------------------------------------------ [2006-01-13 03:24:17] [EMAIL PROTECTED] 1) Have you installed PHP cleanly? Make sure you delete EVERY php related DLL, etc. before installing new versions. 2) What extensions do you load in your php.ini? 3) What zend extensions do you load in your php.ini? ------------------------------------------------------------------------ [2006-01-13 02:46:55] screen at brainkrash dot com Description: ------------ A problem on win32 in plist_entry_destructor when running sockets as a shared library (php_sockets.dll). Tested on all php versions from 4.4.1 forward to CVS snapshot version php5.1-win32-200601111130. Reproduce code: --------------- start apache execute: <?php $sock = pfsockopen('127.0.0.1', 3306, $errno, $errstr); ?> stop apache Expected result: ---------------- Normal clean apache shutdown. Actual result: -------------- First-chance exception in Apache.exe (NTDLL.DLL): 0xC0000005: Access Violation. NTDLL! 7c9105f8() _emalloc(unsigned int 7507988) line 182 + 29 bytes _erealloc(void * 0x007e5dc8, unsigned int 0, int 79) line 339 + 10 bytes xbuf_format_converter(smart_str * 0x0006fdac, const char * 0x009a0458 `string', char * 0x0006fe44) line 212 + 69 bytes vspprintf(char * * 0x0006fde4, unsigned int 0, const char * 0x009a0458 `string', char * 0x0006fe44) line 727 php_error_cb(int 7482400, const char * 0x00000002, const unsigned int 10033100, const char * 0x00000000, char * 0x009a0458 `string') line 659 zend_error(int 8159293, const char * 0x00000002) line 950 + 23 bytes plist_entry_destructor(void * 0x0102de68) line 216 + 16 bytes zend_hash_apply_deleter(_hashtable * 0x007bad73, bucket * 0x01009e28) line 574 + 6 bytes zend_hash_graceful_reverse_destroy(_hashtable * 0x01009e28) line 641 zend_destroy_rsrc_list(_hashtable * 0x01009e28, void * * * 0x00fcb288) line 239 + 10 bytes executor_globals_dtor(_zend_executor_globals * 0x01009c58, void * * * 0x00fcb288) line 506 + 7 bytes tsrm_shutdown() line 180 + 4 bytes php_apache_server_shutdown(void * 0x00000000) line 335 run_cleanups(cleanup_t * * 0x0026ad70) line 1953 apr_pool_destroy(apr_pool_t * 0x0040183d) line 734 destroy_and_exit_process(process_rec * 0x00268de8, int 0) line 210 main(int 4201858, const char * const * 0x00000005) line 625 + 8 bytes APACHE! mainCRTStartup + 227 bytes KERNEL32! 7c816d4f() ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35988&edit=1