Ok. I looked at the ISAPI code, and I am now calling ts_thread_free() when
the handler exits. This seems to have cleared up the problem immensely, but
it's still leaking to the tune of ~1k per request. I'll go over my SAPI
module again to verify that is not the cause of the 1k leak.

Also with php4-20011217120 randomly (13 times in 5000 requests), the page
(1k test data with no php script commands) fails to serve. Php writes:

Unknown(0) : Warning - Failed opening
'/web02/content/_default/_default/k1.php' for inclusion
(include_path='.:/usr/local/lib/php')

To stdout

Alex

On 12/21/01 12:52 PM, "Andi Gutmans" <[EMAIL PROTECTED]> wrote:

> Check out DllMain() in php4isapi.c.
> Are you running the thread attach and thread detach code?
> 
> Andi
> 
> At 12:43 PM 12/21/2001 -0600, Alex Leigh wrote:
>> It can do both. In the testing configuration, it is not pooling but
>> destroying the threads. They are created as detached threads, which at least
>> on Solaris go away after they terminate; the ones that exit aren't building
>> up in the process (I verified this with pstack). I am not specifying an
>> explicit cleanup handler for the threads, if that makes any difference; they
>> are exiting normally by returning off the function called in
>> pthread_create().
>> 
>>> Does this web server spawn a new thread for each request? Or does it reuse
>>> its threads?
>>> 
>>> Andi
>>> 
>>> At 12:22 PM 12/21/2001 -0600, Alex Leigh wrote:
>>>> I'm sure it's leaking, it'll readily consume a gig of memory and shows no
>>>> signs of slowing down. I originally was calling phpinfo(), but it also
>> leaks
>>>> equally if I just have the php handler serve a page with no php in it.
>>>> 
>>>> So, yes, it leaks that amount every request and it never frees.
>>>> 
>>>> The code as I mentioned is a copy of the NSAPI module (nearly identical),
>>>> and it basically does:
>>>> 
>>>>    if (php_request_startup(TSRMLS_C) == FAILURE) {
>>>>       return FAILURE;
>>>>    }
>>>> 
>>>> ...
>>>> 
>>>>  php_execute_script(&file_handle TSRMLS_CC);
>>>>  php_request_shutdown(NULL);
>>>> 
>>>> Alex
>>>> 
>>>> On 12/21/01 10:28 AM, "Zeev Suraski" <[EMAIL PROTECTED]> wrote:
>>>> 
>>>>> Are you calling request_shutdown?
>>>>> Also, are you sure it's actually leaking?  Does it leak 200-400KB on each
>>>>> and every request, or does this rate 'slow down' at some point?
>>>>> 
>>>>> Zeev
>>>>> 
>>>>> At 18:20 21/12/2001, Alex Leigh wrote:
>>>>>> All -
>>>>>> 
>>>>>> I have written a SAPI module for a new webserver "continuity". The
>> code is
>>>>>> basically the SAPI code for NSAPI, modified to work with
>> continuity's API.
>>>>>> Continuity is threaded, based on the pthread libraries.
>>>>>> 
>>>>>> My problem is that each requests that is handled by PHP leaks about
>>>>>> 200-400KB. I've gone over the code carefully, and I don't see that I am
>>>>>> doing (or more importantly, not doing) anything differently than any
>>>> of the
>>>>>> other SAPI modules.
>>>>>> 
>>>>>> I have tried php4-4.1.0, as well as the 12/17 cvs snapshot, on both
>> Linux
>>>>>> and Solaris. I did not configure php with any options other than that to
>>>>>> include my sapi module "--with-capi".
>>>>>> 
>>>>>> If someone could give me a reference to SAPI documentation (none of
>>>> which I
>>>>>> could find), or give me a lead on what my problem might be, I'd
>> appreciate
>>>>>> it.
>>>>>> 
>>>>>> My SAPI code can be had at
>>>>>> http://www.ashpool.com/dist/php4-capi-v200-p1.tar.gz
>>>>>> 
>>>>>> --
>>>>>> Alex Leigh - www.tessier.com - [EMAIL PROTECTED]
>>>>>> The difference between theory and reality is that
>>>>>> in theory there is no difference.
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> PHP Development Mailing List <http://www.php.net/>
>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> --
>>>> PHP Development Mailing List <http://www.php.net/>
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>> To contact the list administrators, e-mail: [EMAIL PROTECTED]
>>> 
>>> 
>> 
>> 
>> 
>> --
>> PHP Development Mailing List <http://www.php.net/>
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> To contact the list administrators, e-mail: [EMAIL PROTECTED]
> 


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to