ID: 32099 User updated by: terryoh at wins21 dot com Reported By: terryoh at wins21 dot com -Status: Feedback +Status: Open Bug Type: COM related Operating System: Windows 2000 Server PHP Version: 4.3.8 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [2005-02-25 01:52:36] terryoh at wins21 dot com Description: ------------ Today, my apache server stopped service. So I tested whether the apache daemon was ok or not. It worked, because the telnet 80 connection(like C:/telnet.exe 127.0.0.1 80) was successful. But I could not open any php pages on the internet explorer. I checked the memory with windows task manager and I found something strange. The allocated memory for apache was almost 1GB(998MB) and the count of the handles was almost 40000(39890). Finally I found that it was ADO-PHP problem. I could see memory and the count of handles increased when opening database and closing it repeatedly(1 try/1 second for an hour). Especially the handles were never decreased. [Steps] 1) Register any ODBC DSN(driver=SQL Server)in the control panel. 2) In PHP.INI, set the key name(odbc.default_db) with the DSN;user ID;password. 3) Start an apache service. 4) Open a test page(in the reproduce code section)in your web browser. 5) Refresh the test page repeatedly once a second. 6) Open windows task manager. If you can not see handle column on the process tab, add it(Menu->View->Column Selection->Handle). 7) After 1 minute or later, you can see the count of apache handle increase like 400->401->402->403.... Also you can see the memory increase. Reproduce code: --------------- <?php $ConnectionString = ini_get('odbc.default_db'); $AdoConn = new COM("ADODB.Connection"); $AdoConn->Open($ConnectionString); $AdoConn->Close(); unset($AdoConn); ?> ***** Web Server : Apache 1.3.28 ***** PHP : 4.3.8 ***** OS : Windows 2000 Server ***** DBMS : MSSQL2000 Enterprise Edition ***** OTHERS : MDAC 2.8 Expected result: ---------------- Windows Task Manager(Process Tab) Image name Memory Handle Apache.exe 10,840KB 200 11:00 AM Apache.exe 10,857KB 201 11:02 AM Apache.exe 10,867KB 202 11:04 AM Apache.exe 10,867KB 202 11:06 AM Apache.exe 10,867KB 202 11:08 AM Apache.exe 10,867KB 202 11:10 AM Apache.exe 10,867KB 202 11:12 AM .... Actual result: -------------- Windows Task Manager(Process Tab) Image name Memory Handle Apache.exe 10,840KB 200 11:00 AM Apache.exe 10,857KB 201 11:02 AM Apache.exe 10,867KB 202 11:04 AM Apache.exe 10,877KB 203 11:06 AM Apache.exe 10,886KB 204 11:08 AM Apache.exe 10,899KB 205 11:10 AM Apache.exe 10,910KB 206 11:12 AM .... Apache.exe 998MB 39890 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32099&edit=1