| Bug #37483 | PHP5TS.DLL causes w3svc crash and application pool termination | ||||
|---|---|---|---|---|---|
| Submitted: | 17 May 2006 8:05pm UTC | Modified: | 22 Jul 2006 3:55pm UTC | ||
| From: | jneill at gamedaytv dot com | Assigned to: | |||
| Status: | Bogus | Category: | IIS related | ||
| Version: | 5.1.4 | OS: | Windows 2003 SP 1 | ||
| Votes: | 66 | Avg. Score: | 4.8 ± 0.6 | Reproduced: | 64 of 64 (100.0%) |
| Same Version: | 60 (93.8%) | Same OS: | 61 (95.3%) | ||
[17 May 2006 8:05pm UTC] jneill at gamedaytv dot com
[17 May 2006 8:27pm UTC] tony2001@php.net
Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better.
[18 May 2006 5:40pm UTC] jneill at gamedaytv dot com
I do not understand these instructions: "When PHP crashes, click Cancel to debug the process. Now MSVC starts up in Debug View. If you don't already see the call stack, go into the View menu and choose Debug Windows → Call Stack." When PHP crashes, we do not see a dialogue box with Cancel as an option, and MSVC does not start up. All that happens is that we get an error in the System Event Log that says something like: --- A process serving application pool 'Site12' terminated unexpectedly. The process id was '3392'. The process exit code was '0xc0000005'. --- So how do I run the debugger?
[19 May 2006 4:04pm UTC] julien dot jacques at fingerprint dot fr
I have exactly the same problem. Since i am on a production server, i can't install MSVC6. (it seems to be replace with MSvisual express2005, which require to remove all sql server prior to 2005. And i can't remove it on production.) I try to add the .pdb to the DebugDiag symbol path but the file doesn't match the dll. Is this because the debug pack is for php5.2.x? Do i have to install php5.2.x-dev? Where can i find the debug pack for php5.1.4? I would be happy to help, but i don't know how to produce the backtrace you require.
[24 May 2006 10:12pm UTC] tony2001@php.net
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip
[29 May 2006 9:22am UTC] andrej at seznam dot org
I came up with exact the same crash analysis, even with the latest PHP snapshot 5.2.0-dev dated May 28 2006 00:17:10: --- Operating System Windows Server 2003 Service Pack 1 Number Of Processors 2 Process ID 8060 Process Image c:\WINDOWS\system32\inetsrv\w3wp.exe System Up-Time 46 day(s) 02:14:04 Process Up-Time 0 day(s) 00:22:07 Thread 15 - System ID 7536 Entry point msvcrt!_endthread+3b Create time 29.5.2006 0:13:40 Time spent in user mode 0 Days 0:0:0.0 Time spent in kernel mode 0 Days 0:0:0.0 Function Arg 1 Arg 2 Arg 3 Source <Unloaded_php5ts.dll>+268810 01626ce0 00000000 00000000 msvcrt!_endthread+ab 0270aa78 00000000 00000000 kernel32!BaseThreadStart+34 77bcb35a 0270aa78 00000000 an access violation exception (0xC0000005) occured on thread 15 when another module attempted to call the following UNLOADED module: php5ts.dll. --- It is weird, that at the moment of crash sometimes there is NO ACTIVITY (= noone is browsing the page). On the other hand, w3swc.exe process consumes too much CPU time, compared to my observations from some time ago, when WebAppPools did not crash. The observed WebAppPool is isolated, I mean, only 1 web uses this pool.
[30 May 2006 4:37pm UTC] jneill at gamedaytv dot com
We tested the 5.2 snap on two of our Windows 2003 SP1 servers, and the aforementioned crashes occur with more frequency than with PHP 5.1.4 on the same servers.
[30 May 2006 5:59pm UTC] bruno dot delbono at gmail dot com
I too can replicate it on both the 5.2-devel (the current) and 5.1.4. This is becoming a very irritating problems as w3wp.exe keeps crashing. Windows 2003 SP1 running IIS 6 with PHP ISAPI. Faulting application w3wp.exe, version 6.0.3790.1830, faulting module unknown, version 0.0.0.0, fault address 0x01b05c80. WARNING - DebugDiag was not able to locate debug symbols for php5ts.dll, so the information below may be incomplete. In w3wp__PID__4176__Date__05_25_2006__Time_09_57_31AM__495__Second_Chance_E xception_C0000005.dmp an access violation exception (0xC0000005) occured on thread 18 when another module attempted to call the following unloaded module: php5ts.dll. w3wp__PID__4176__Date__05_25_2006__Time_09_57_31AM__495__Second_Chance_E xception_C0000005.dmp Type of Analysis Performed Crash Analysis Machine Name DRAGOS Operating System Windows Server 2003 Service Pack 1 Number Of Processors 2 Process ID 4176 Process Image c:\WINDOWS\system32\inetsrv\w3wp.exe System Up-Time 1 day(s) 06:47:17 Process Up-Time 0 day(s) 01:19:11 Thread 18 - System ID 2008 Entry point msvcrt!_endthread+3b Create time 5/25/2006 9:57:30 AM Time spent in user mode 0 Days 0:0:0.0 Time spent in kernel mode 0 Days 0:0:0.0 Function Arg 1 Arg 2 Arg 3 Source <Unloaded_php5ts.dll>+265c80 02e8a940 00000000 00000000 msvcrt!_endthread+ab 02db8bf8 00000000 00000000 kernel32!BaseThreadStart+34 77bcb35a 02db8bf8 00000000 In w3wp__PID__4176__Date__05_25_2006__Time_09_57_31AM__495__Second_Chance_E xception_C0000005.dmp an access violation exception (0xC0000005) occured on thread 18 when another module attempted to call the following unloaded module: php5ts.dll.
[10 Jun 2006 11:31am UTC] hayden dot kirk at mobilepc dot co dot nz
I have the same error on Windows 2003 SP1 and Windows 2003 SBS SP1.
[12 Jun 2006 8:07pm UTC] mike at normi dot net
Can confirm this on Windows 2003 SP1, ISAPI extension is as unstable as hell since 5.1.4.
[17 Jun 2006 11:47am UTC] gravityworksllc at hotmail dot com
I just installed mysql.5.0.22 and the w3wp errors stopped even though I am using php 5.1.4. Very strange... But it works and it works well. Also using MYSql Admin 1.1 ( latest revision ) Installed php 5.1.4 then MYSql 5.0.22 and then SQLAdmin 1.1. No more errors from w3wp.exe and anything.. Clean as a whistle... Kind regards, Mynd
[19 Jun 2006 1:23pm UTC] tony2001@php.net
Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip
[19 Jun 2006 9:44pm UTC] jneill at gamedaytv dot com
The crashes continue even with this latest snapshot.
[20 Jun 2006 4:26pm UTC] gravityworksllc at hotmail dot com
I spoke too soon about version 5 5 and 1.1admin. The crashes still occur. Man we need this fixed. My logs are getting killed with errors and warnings all day.. Hope you can get to the bottom of this soon.. I know you are trying.. Kind regards, Mynd http://www.myndpollution.com
[20 Jun 2006 4:33pm UTC] tony2001@php.net
I have serious doubts that we can fix something we can't reproduce and nobody can provide a piece of useful information.
[20 Jun 2006 5:27pm UTC] zbowden at vt dot edu
Tony, what information do you need that would be useful? It looks to me (and I'm definately not a gd or windbg expert) that the php5ts module is just unloading itself too soon. AFAIK, you won't be able to get a meaningful backtrace (like I'm sure you're accustomed to seeing) when the module has been unloaded. I looked over the msdn site quite a bit trying to correlate some change that was made from 5.1.2 - 5.1.3 (and beyond) that relates to unloading but couldn't really find anything. When you're trying to repro the problem do you have any extensions enabled?
[20 Jun 2006 6:48pm UTC] jneill at gamedaytv dot com
Tony, I understand the predicament you are in as far as not being able to reproduce the issue. However, you have 21 votes, 19 reported reproductions of the issue, and several written accounts of this problem; this tends to indicate that there is indeed a problem that needs to be fixed, and the problem was introduced by changes that occurred from 5.1.2 to 5.1.4. I cannot generate any of the backtraces you require other than giving you the errors I have already reported. I can tell you that we only use PHP for the following on our webservers: 1. Running PHP forums, Invision Power Board (www.invisionpower.com), which utilize MS SQL 2005 databases. 2. Running a program called Flashloaded bannerRotator (www.flashloaded.com) which utilizes a mySQL database. 3. Running test PHP scripts. On each of the sites that we run PHP on, the errors are generated. It does not appear that using MySQL or MSSQL or no database affects the frequency of PHP crashes. Is it possible for someone to procure a Windows 2003 SP1 box and run PHP with similar forum or banner management software to see if they can replicate the issue?
[21 Jun 2006 9:29am UTC] rusty at gmx dot de
Same problem here. OS: Win2003SP1 PHP: 5.1.4 MySQL: 4.1.20 PHP-Applications running: Typo3, EQDKP, Wordpress...
[21 Jun 2006 1:15pm UTC] fcomparini at tvninteractivo dot cl
I have the same problem on 4 machines behind a load balancer (Windows 2003, IIS, PHP 5.1.4, MySQL 5.0.15). I was using PHP 5.0.5 and no problems, but after upgrading I keep having this w3wp.exe crashing problem. I downgrade to 5.0.5 and the problem disappear, although the site run slow on heavy load. I can't install debugging applications because these are my production servers.....
[22 Jun 2006 2:31am UTC] pauldain at hotmail dot com
Having the exact same issue. I'll add that the same behavior occurs on Windows XP Pro/IIS 5.1. In fact it is somewhat easier to reproduce. Restart IIS, and the error dialog will be thrown every time.
[22 Jun 2006 9:37am UTC] flekj at atlas dot cz
Same problem using PHP 5.1.4 and 5.1.3.... We had to downgrade back to 5.1.2. There were no other changes made in configuration, only new binaries copied to PHP directory. OS: Windows Server 2003 SP1 with latest system updates IIS6 with ASP.NET v1.1.4322, Active server Pages and PHP5 ISAPI extensions allowed PHP versions mentioned above
[28 Jun 2006 11:15am UTC] gauthier at datas dot com
Same problem here with Windows Server 2003 SP1, IIS 6, .NET 1.1 , PHP 5.1.4 (tested also 5.1.3 & 5.2.0-dev) using ISAPI: start WWW Publishing Service then load any PHP page (w/ phpinfo() directive for example) then stop WWW Publishing Service -> the error is thrown. Had to downgrade to PHP 5.1.2 to make the error go away...
[28 Jun 2006 3:13pm UTC] admin at dhosting dot co dot uk
Same issue Win 2003 SP1 PHP 5.1.4 MySQL 5.0.22 Reproduced on 5 servers, production and test environment, new installs etc Only way to resolve is to revert back to 5.1.2 Any news on a fix yet?
[28 Jun 2006 3:34pm UTC] tony2001@php.net
Please don't add any comments to this report if you have nothing to say except for "me too".
[30 Jun 2006 6:50am UTC] danielm at deekora dot tv
I suspect the reason it occurs when no one is using the web site is
because the warning appears when the application pool is recycled.
After disabling automatic pool recycling the warning has not appeared.
to replicate the problem:
> Open a php site that uses the isapi module
> run the following script
======================================
'Recycle all application pools on server strComputer
strComputer = "your server name in here"
Set objWMIService =
GetObject("winmgmts:{authenticationLevel=pktPrivacy}\\" & strComputer &
"\root\microsoftiisv2")
Set colItems = objWMIService.ExecQuery("Select * From
IIsApplicationPool")
For Each objItem in colItems
objItem.Recycle
Next
wscript.echo "Done!"
======================================
> Check iis logs
[12 Jul 2006 6:29pm UTC] ferrante at aracnet dot com
These are related issues in the bug database that seem to be describing the same problem: Bug #36853 Worker process crashes after application pool recycle Bug #33373 IIS worker Process continually restarts Bug #37575 Faulting application w3wp.exe Bug #35263 Crash during IIS Restart We have the situation where the access violation appears when the process is restarted. We followed the advice above to minimize error messages by putting the PHP app into its own application pool and not letting the app pool get recycled. However, on iisreset or stop/restart of the application pool, the access violation is generated, even on the snapshot code as recent as php5.2-win32-200607120630. Data Execution Prevention (DEP) was implicated in Bug #36853 and on one of our servers we were able to mask the error by added an DEP exception for the w3wp.exe executible. However on another server this did not work. Bug #36853 also mentions changing the dynamic extensions load order around, but in our case it did not seem to help since we are able to reproduce the problem with PHP installed, no dynamic extensions enabled, with a simple echo("hello world"); php file. If the app pool is recycled or iisreset occurs, the php5ts.dll will generate an exception on unload. Bug #36853 also mentions that recompiling php from source with a Visual Studio 2005 can fix the issue also. We have not yet tried that step. Hopefully this information helps to resolve the issue. Thanks.
[12 Jul 2006 6:36pm UTC] ferrante at aracnet dot com
I am a software developer and would be happy to provide any additional information or collect any other diagnostics that would help resolve this issue, including providing access to a machine on which the problem occurs that has tools such as WinDbg and the IIS "Debug Diagnostics Tool" installed. Please let me know how I can help out, and thanks for all your efforts.
[12 Jul 2006 9:49pm UTC] iburguer at hotmail dot com
Hi. I have the same issue here (development box, Windows XP Pro/sp2). I have a Dr. Watson dump and log. Where should I send those files? Regards, Ignacio
[13 Jul 2006 6:16am UTC] iburguer at hotmail dot com
Hi. It's quite hard to get a backtrace, because both php5isapi.dll and php5ts.dll have been unloaded when the exception raises. So I ran windbg, attached it to inetinfo.exe, run a test case, then stopped the IIS service. I noticed that php5ts.dll leaves some structures allocated in the Thread Local Storage (which is not good, and may lead to this problem). Anyway, after the exception occured, I reloaded the dll in the debugger, and so I got this backtrace: ChildEBP RetAddr 11f4f90c 00403368 ntdll!DbgBreakPoint 11f4fadc 00406843 vrfcore!VerifierStopMessageEx+0x3d3 [d:\avrf\x86fre\base\avrf\avrf30\vrfcore\sdk.cpp @ 471] 11f4fb04 003b2139 vrfcore!VfCoreRedirectedStopMessage+0x86 [d:\avrf\x86fre\base\avrf\avrf30\vrfcore\stopredirect.cpp @ 103] 11f4fb34 003a8f19 vfbasics!VfBasicsStopMessage+0x1c9 [d:\avrf\x86fre\base\avrf\avrf30\providers\basics\basics.cpp @ 1045] 11f4fb98 003a8658 vfbasics!AVrfpCheckFirstChanceException+0x139 [d:\avrf\x86fre\base\avrf\avrf30\providers\basics\support.c @ 966] 11f4fba8 7c942dcf vfbasics!AVrfpVectoredExceptionHandler+0x18 [d:\avrf\x86fre\base\avrf\avrf30\providers\basics\support.c @ 313] 11f4fbc8 7c9377da ntdll!RtlCallVectoredExceptionHandlers+0x48 11f4fc40 7c90eafa ntdll!RtlDispatchException+0x19 11f4fc40 07a25c90 ntdll!KiUserExceptionDispatcher+0xe 11f4ff40 77c3a243 php5ts!xmlGetGlobalState+0xd0 11f4ff74 003a4e8f msvcrt!_endthread+0xaf 11f4ffb4 7c80b50b vfbasics!AVrfpStandardThreadFunction+0x6f [d:\avrf\x86fre\base\avrf\avrf30\providers\basics\thread.c @ 553] 11f4ffec 00000000 kernel32!BaseThreadStart+0x37 Note: I'm also using Microsoft's Application Verifier. That's how I found out about the TLS issue, and also is responsible for those vrfcore and vfbasics functions that appear in the stack. If you need further information, I'd be glad to help.
[13 Jul 2006 7:23am UTC] iburguer at hotmail dot com
One last thing. I removed php5isapi.dll from IISAPI filters (but left it to handle the .php mapping in the "application settings" tab of the resource properties in IIS). The problem seems to be solved. I can run now phpinfo(), then stop the w3svc service and nothing crashes. I have no idea if I'm missing something having removed iisapi filter. Greetings, Ignacio Burgueņo
[17 Jul 2006 2:15am UTC] lascjr at bol dot com dot br
I have same problem, i has version 5.1.4, i have read and use this instructions (http://bugs.php.net/bugs-generating-backtrace-win32.php, i have tested with Last Snap 5.2 http://snaps.php.net/win32/php5.2-win32-200607162230.zip and http://snaps.php.net/win32/php5.2-dbgpack-win32-latest.zip) but the Debug donīt work, i have installed MSVC6, when PHP crashes the system show: --------------------------- w3wp.exe - Application Error --------------------------- The instruction at "0x0c107dc8" referenced memory at "0x0c107dc8". The memory could not be "read". Click on OK to terminate the program Click on CANCEL to debug the program --------------------------- OK Cancel --------------------------- I click at Cancel button to debug the process, but i only received the new Msgbox with: --------------------------- w3wp.exe - Application Error --------------------------- The instruction at "0x0c107dc8" referenced memory at "0x0c107dc8". The memory could not be "read". Click on OK to terminate the program --------------------------- OK --------------------------- I am not totally sure, but only downgrade to 5.0.3 solves my problem, 5.0.4 or newer are the same problem. I use Windows Server 2003 Web Edition SP1, full patched, i only use extensions php_mysql and php_mbstring PHP Bug Team, please create the ambient for test, itīs very simple, backtrace really donīt show nothing expect i related.
[22 Jul 2006 3:55pm UTC] sniper@php.net
We are aware of PHP's problems with stability under IIS and are working to rectify the problem. Unfortunatly your bug report does not contain any extra useful information and we already have enough bug reports open about this issue. If you can provide more detailed information such as a reproducable crash or a backtrace please do so and reopen this bug. Otherwise please keep trying new releases as we are working to resolve the problems on this platform Thanks for your interest in PHP.
