httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Randy Terbush <ra...@zyzzyva.com>
Subject Re: resources not getting freed
Date Fri, 07 Mar 1997 15:11:46 GMT
I think that the problem I am seeing is that children are getting 
buried in loops and not making it to the point where they are 
dieing, but just holding up resources. I'm still chasing this 
around, but this area looked suspicious to me.

> Yeah but a clear_pool() is performed on the parent of the r->pool next
> time through at the top of the child_main loop. 
> 
> Dean
> 
> On Thu, 6 Mar 1997, Randy Terbush wrote:
> 
> > In http_main.c:1775
> > 
> > In the child_main() loop:
> > 
> > Why do we break if the connection is !current_conn->keepalive?
> > 
> > destroy_pool() does not seem to get called in this case.
> > 
> > 
> >         /*
> >          * Read and process each request found on our connection
> >          * until no requests are left or we decide to close.
> >          */
> >  
> >         for (;;) {
> >             r = read_request(current_conn);
> >             (void)update_child_status(child_num, SERVER_BUSY_WRITE, r);
> >  
> >             if (r) process_request(r); /* else premature EOF --- ignore */
> > #if defined(STATUS) 
> >             if (r) increment_counts(child_num,r,1);
> > #endif
> >             if (!r || !current_conn->keepalive)
> >                 break;
> >  
> >             destroy_pool(r->pool);
> >             (void)update_child_status(child_num, SERVER_BUSY_KEEPALIVE,
> >                                       (request_rec*)NULL);
> > 
> >             sync_scoreboard_image();
> >             if (scoreboard_image->global.exit_generation >= generation) {
> >                 bclose(conn_io);
> >                 bclose(conn_io);
> >                 exit(0);
> >             }
> >         }
> > 
> > 
> > 




Mime
View raw message