#23331 [Com]: Memory leak in ISAPI
| From: | osvetlik at kerio dot com | Date: | Thu, 18 Mar 2004 11:30:15 +0000 |
| Subject: | #23331 [Com]: Memory leak in ISAPI | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-56616@lists.php.net to get a copy of this message | ||
ID: 23331
Comment by: osvetlik at kerio dot com
Reported By: jakub at icewarp dot com
Status: No Feedback
Bug Type: IIS related
Operating System: win32
PHP Version: 4CVS, 5CVS
New Comment:
We are embedding PHP in our products and we have the same problem. It
is very important for us to have this issue solved ASAP, if we may
help, please, tell us how.
Previous Comments:
------------------------------------------------------------------------
[2003-12-30 01:00:00] php-bugs at lists dot php dot net
No feedback was provided for this bug for over 2 weeks, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2003-12-16 14:31:02] msisolak at yahoo dot com
The recent changes have fixed a big chunk of the leaks, but there are
still a couple of memory types that are not getting freed. I'll have a
couple of more patches to close out this bug soon.
------------------------------------------------------------------------
[2003-12-14 20:16:31] sniper@php.net
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
Some fixes have been committed recently which should fix this bug.
Please try the snapshot out.
------------------------------------------------------------------------
[2003-10-04 08:40:57] jakub at icewarp dot com
I think I tracked down the leak.
In this function:
TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
There's at the end this:
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id,
thread_resources->count);
Now if I uncomment this. It does not leak the memory for the 2 calls
from my last post.
The call translates to
return &thread_resources->storage;
Why should this leak? Please, C++ people help us here.
------------------------------------------------------------------------
[2003-10-04 06:17:00] jakub at icewarp dot com
I have been digging more into this issue and I have found this.
1. HttpExtensionProc like this does not leak at all.
DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpECB)
{ return 0; }
2. 1. HttpExtensionProc like this does leak.
DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpECB)
{
TSRMLS_FETCH();
ts_free_thread();
return 0;
}
It is clear that the ts_free_thread does not free everything. I'm not a
C/C++ guru please people help here. This issue has been here since 2
years ago and nobody fixed it yet. Let me know.
Jakub
------------------------------------------------------------------------
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/23331
--
Edit this bug report at http://bugs.php.net/?id=23331&edit=1