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]