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]