php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #37428 php.exe crashing if unable to load any of configured extension dll
Submitted: 2006-05-13 10:43 UTC Modified: 2006-05-24 22:05 UTC
From: velkran-2 at yahoo dot com Assigned:
Status: Closed Package: *General Issues
PHP Version: 5.1.4 OS: Windows XP SP2
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: velkran-2 at yahoo dot com
New email:
PHP Version: OS:

 

 [2006-05-13 10:43 UTC] velkran-2 at yahoo dot com
Description:
------------
php.exe will crash if any of configured extension dll cannot be found.
It can either incorrect extension_dir or just missing dll file.
From my point of view it is better to proper report this situation, not just crash.
As far as i can see usually php report this situation in error log.
I'v tried 5.1.4 and 5.1.2 with same results.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-05-14 12:31 UTC] tony2001@php.net
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.



 [2006-05-16 19:07 UTC] velkran-2 at yahoo dot com
Just to be sure, i did these steps:
1. Download php5.2-win32-200605161430.zip
2. Download php5.2-dbgpack-win32-latest.zip
3. unpack these 2 files to e:\php5.2
4. copy php.ini-recommended to php.ini
5. edit php.ini, uncomment line ;error_log = syslog
6. edit php.ini (to emulate "PHP Startup: Unable to load dynamic library" error)
Before:
;extension=php_bz2.dll
To:
extension=xphp_bz2.dll
7. change current directory to e:\php5.2
8. start php.exe
9. got usual windows GPF message, click "Debug" to create backtrace
Please find a Backtrace at the end of this comment.

As far as i can see there is some problem with windows event log reporting, basically it failes at this line:
	/* default event source */
--->	if (!PW32G(log_source))
		openlog("php", LOG_PID, LOG_SYSLOG);
I'm pretty that openlog was not called yet, i put a breakpoint on it. So failing somewhere inside mystical PW32G thing.
Hope this will be help.

A Backtrace (hope you will see it well-formatted):
	>	php5ts.dll!syslog(int priority=6, const char * message=0x102a6814, ...)  Line 91	C
 	php5ts.dll!php_log_err(char * log_message=0x009b1080, void * * * tsrm_ls=0x00324200)  Line 349 + 0x14	C
 	php5ts.dll!php_error_cb(int type=32, const char * error_filename=0x102967d0, const unsigned int error_lineno=0, const char * format=0x009b1080, char * args=0x00000001)  Line 763	C
 	php5ts.dll!zend_error(int type=32, const char * format=0x10296780, ...)  Line 948 + 0x17	C
 	php5ts.dll!php_verror(const char * docref=0x00000000, const char * params=0x10296690, int type=32, const char * format=0x0000000b, char * args=0x0000006d, void * * * tsrm_ls=0x00000000)  Line 573	C
 	php5ts.dll!php_error_docref0(const char * docref=0x00000000, void * * * tsrm_ls=0x00324200, int type=32, const char * format=0x10307754, ...)  Line 588 + 0x23	C
 	php5ts.dll!php_dl(_zval_struct * file=0x009f5610, int type=1, _zval_struct * return_value=0x0012fbe4, int start_now=0, void * * * tsrm_ls=0x00324200)  Line 142 + 0x26	C
 	php5ts.dll!php_load_function_extension_cb(void * arg=0x009f5610, void * * * tsrm_ls=0x00324200)  Line 236	C
 	php5ts.dll!zend_llist_apply(_zend_llist * l=0x104366d4, void (void *, void * * *)* func=0x100bcb50, void * * * tsrm_ls=0x00324200)  Line 191 + 0x7	C
 	php5ts.dll!php_ini_register_extensions(void * * * tsrm_ls=0x00324200)  Line 555	C
 	php5ts.dll!php_module_startup(_sapi_module_struct * sf=0x00405020, _zend_module_entry * additional_modules=0x00000000, unsigned int num_additional_modules=0)  Line 1563	C
 	php.exe!main(int argc=64, char * * argv=0x7ffde000)  Line 681 + 0x12	C
 	ntdll.dll!7c915b4f() 	
 	ntdll.dll!7c9131dc() 	
 	ntdll.dll!7c913212() 	
 	ntdll.dll!7c913281() 	
 	ntdll.dll!7c913288() 	
 	ntdll.dll!7c913288() 	
 	ntdll.dll!7c9106eb() 	
 	msvcrt.dll!77c2c3c9() 	
 	msvcrt.dll!77c2c3ce() 	
 	ntdll.dll!7c915b4f() 	
 	msvcrt.dll!77c3ac5f() 	
 	php.exe!_mainCRTStartup()  + 0xe3	
 	ntdll.dll!7c915b4f() 	
 	kernel32.dll!7c816d4f() 	
 	ntdll.dll!7c915b4f() 	
 	kernel32.dll!7c8399f3()
 [2006-05-22 09:29 UTC] velkran-2 at yahoo dot com
I was able to reproduce this problem on latest 5.2 snapshot
 [2006-05-22 09:30 UTC] velkran-2 at yahoo dot com
The workaround for this issue - is not use event log (on Windows)
 [2006-05-24 21:06 UTC] edink@php.net
What do you mean by do not use event log?

I don't get a crash I get:

PHP Warning:  PHP Startup: Unable to load dynamic library '.\php_xxx.dll' - The specified module could not be found.

 [2006-05-24 22:05 UTC] edink@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Dec 02 21:01:30 2024 UTC