Edit report at https://bugs.php.net/bug.php?id=32099&edit=1
ID: 32099
Comment by: mike at edcsi dot com
Reported by: terryoh at wins21 dot com
Summary: After opening ADO connection and closing it
repeatedly, Apache stops service
Status: Assigned
Type: Bug
Package: COM related
Operating System: win32
PHP Version: 5CVS, 4CVS (2005-02-28)
Assigned To: pajoye
Block user comment: N
Private report: N
New Comment:
Has this patch been included in the latest PHP builds? I am running on Windows
2003 server and have experienced the same problem.
Previous Comments:
------------------------------------------------------------------------
[2011-04-23 01:20:41] thangaraj at gmail dot com
I faced a similar crash in my App, fixed the COM issue and was trying to post
it as a new bug, somehow PHP bug system smartly pointed out this defect. Tested
my fix on the sample script and PHP doesn't crash. Therefore uploading patch
here.
This crash is reproducible in old and latest SVN builds too.
OS : WindowsServer 2003 R2 EE SP2 x86
PHP Version : 5.3.6 NTS build or below in fast cgi mode.
Web Server : Apache 2.2.16 / mod_fcgid 2.3.5
DBMS : MSSQL 2005 Enterprise Edition
OTHERS : MDAC 2.8
Root Cause:
~~~~~~~~~~~
When PHP fastcgi engine Initializes and Shuts down ADO COM objects fastly
within a second, Crash happens, i.e., Comsvcs.dll PingThread method access
violates and crashes php-cgi.exe
Patch provided:
~~~~~~~~~~~~~~~
PHP non Thread safe builds using "fast cgi mode" is made to cache COM CoInit
call and release COM subsystem only during php-cgi.exe process shutdown.
By not calling CoUnint during every request shutdown, Comsvcs.dll is not
unloaded and PingThread method does not access violate. Note that MS recommends
to use CoUnint API during process shutdown, and this patch does it.
[PATCH uploaded]
~~~~~~~~~~~~~~~~
DIFF of 5.3SVN-2011-04-22
Patch_for_PhpCrashInFCGIModeDuringCoUnintialzie.diff
-Thanga
------------------------------------------------------------------------
[2005-03-19 00:08:01] [email protected]
We don't know a solution, sorry.
------------------------------------------------------------------------
[2005-03-02 09:43:22] terryoh at wins21 dot com
In my test, PHP 5 has same problem.
I really want to know the solution, please..
------------------------------------------------------------------------
[2005-03-02 08:23:50] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
This is PHP 5 snapshot which has better COM support.
------------------------------------------------------------------------
[2005-02-28 02:43:18] terryoh at wins21 dot com
I downloaded the latest php.
http://snaps.php.net/win32/php4-win32-STABLE-latest.zip
After upgrading the php module, I tried the same test. But the result was same.
Memory and the count of the handles were increased. After the
session.gc_maxlifetime(php.ini), the result was same.
[Presumption]
I read something about zend engine on a webpage(I can't remeber the web address
exactly), it is that the zend engine doesn't release database connection to
reuse exceptionally. It might be this process causes trouble between ADO and
Zend engine.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=32099
--
Edit this bug report at https://bugs.php.net/bug.php?id=32099&edit=1