httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <trawi...@bellsouth.net>
Subject Re: cvs commit: httpd-2.0/server log.c
Date Thu, 17 May 2001 12:32:26 GMT
stoddard@apache.org writes:

> stoddard    01/05/17 05:10:26
> 
>   Modified:    server   log.c
>   Log:
>   Fix a segfault in apr_proc_other_child_unregister. Jeff recently made
>   a change in APR otherchild.c to unregister all OC registrations as
>   part of pool cleanup.  This means that we must NOT explicitly call
>   apr_proc_other_child_unregister out of other pool clean-up routines.
>   In this case, the OC cleanup was being called first then the piped_log_cleanup
>   was being called which called apr_proc_other_child_unregister.
>   
>   We could fix this by detecting the case when there are no more OCs registered
>   in apr_proc_other_child_unregister but that might just mask other problems we
>   need to fix anyway.

Ouch... I guess I should add rotatelogs to my configuration :)  Sorry!

Note that I don't intend to unregister all OC registrations, just the
one(s) for the pool being cleaned up.  Thus, checking for "no more OCs
registered" wouldn't be appropriate.  You'd have to run the list
looking for this particular registration.

Not blowing if apr_proc_other_child_unregister() was called for a
registration already removed might help, but I don't think that
supporting such application logic is consistent with the rest of APR.

An app can explicitly close/destroy pool-based objects *before* the
pool is cleaned up (e.g., close files or sockets) but if the app
neglects to do so then APR will do it during pool clean up and the app
cannot duplicate this work in its own cleanups or bad stuff will
happen.

-- 
Jeff Trawick | trawickj@bellsouth.net | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...


Mime
View raw message