Edit report at http://bugs.php.net/bug.php?id=32099&edit=1

 ID:                 32099
 Comment by:         thangaraj at gmail 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:        wez
 Block user comment: N
 Private report:     N

 New Comment:

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


Previous Comments:
------------------------------------------------------------------------
[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.

------------------------------------------------------------------------
[2005-02-25 14:20:25] [email protected]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip



------------------------------------------------------------------------


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

    http://bugs.php.net/bug.php?id=32099


-- 
Edit this bug report at http://bugs.php.net/bug.php?id=32099&edit=1

Reply via email to