Well, at this point it is only leaking 1k per request; that doesn't "sound"
overly complicated to fix. Do you have an idea of what particularly TSRM is
leaking, after ts_thread_free() is called? I'd be happy to poke around the
code.

Alex

On 12/21/01 2:38 PM, "Zeev Suraski" <[EMAIL PROTECTED]> wrote:

> The way TSRM is written is not designed for servers that don't reuse
> threads for more than one request, so if that's how it works - you're going
> to see a growing memory image all the time :I
> 
> At 22:16 21/12/2001, Alex Leigh wrote:
>> 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]
> 
> 


-- 
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