apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Takashima, Makoto" <takas...@poem.ocn.ne.jp>
Subject Re: Why apache2.0 does not rotatelogs process when it died
Date Tue, 04 Mar 2003 15:38:48 GMT
Sorry,

I sent the following message to wrong ML. Please ignore it.

On Wed, 05 Mar 2003 00:17:01 +0900, takasima@poem.ocn.ne.jp
wrote:

> Hi,
> 
> I have question about rotatelogs process handling.
> 
> When apache is logging with rotatelogs and rotatelogs
> process died (e.g. accidentaly killed by someone),
> Apache-1.3 respawns rotatelogs process and keeps logging but
> Apache-2.0 does nothing and does not output log anymore.
> 
> What I found is this behaviour is implemented with
> server/log.c Revision 1.46. (see the following log and diff)
> 
> ===============================================================================
> Revision 1.46 / (view) - annotate - [select for diffs] , Thu
> May 4 19:42:54 2000 UTC (2 years, 9 months ago) by rbb 
> Branch: MAIN 
> Changes since 1.45: +7 -0 lines 
> Diff to previous 1.45 (colored) 
> Port reliable piped logs to mpmt_pthread and dexter.  Also a couple of small
> cleanups for reliable piped logs.
> 
> ===================================================================
> RCS file: /home/cvspublic/httpd-2.0/server/log.c,v
> retrieving revision 1.45
> retrieving revision 1.46
> diff -u -r1.45 -r1.46
> --- httpd-2.0/server/log.c	2000/05/04 04:02:16	1.45
> +++ httpd-2.0/server/log.c	2000/05/04 19:42:54	1.46
> @@ -636,6 +636,13 @@
>  
>      switch (reason) {
>      case APR_OC_REASON_DEATH:
> +	pl->pid = NULL;
> +	ap_unregister_other_child(pl);
> +	if (pl->program == NULL) {
> +	    /* during a restart */
> +	    break;
> +	}
> +        break;
>      case APR_OC_REASON_LOST:
>  	pl->pid = NULL;
>  	ap_unregister_other_child(pl);
> ===============================================================================
> 
> Does anybody know what is intension of this change?
> 
> Apache-1.3's respawnning of piped_log process is not
> intentional behaviour?
> 
> If I do not use any thread (i.e. use only prefork), can I
> remove above added part of code from log.c for my web server?
> 
> I just did small test with changed code and it looks working fine.
> (i.e. when I killed rotatelogs process, httpd respawned
>  rotatelogs and keep logging!!)
> 
> I appreciate any comment or suggestion.
> 
> 
> --
> takasima@poem.ocn.ne.jp
> 

--
takasima@poem.ocn.ne.jp



Mime
View raw message