httpd has a feature called reliable piped logs. When a log process like
rotatelogs dies, httpd automatically restarts it. This can be used to
close open log files from outside httpd by simply killing rotatelogs.
This procedure does not work for the error logs, because those are
started with a
On 01/16/2009 12:21 AM, Rainer Jung wrote:
>
> This difference goes back to pre 1.3 httpd.
>
> The patch at
>
> http://people.apache.org/~rjung/patches/reliable_error_log.patch
Just some quick comments below
Index: server/log.c
===
Hi Rüdiger,
first thanks for reviewing.
On 17.01.2009 18:02, Ruediger Pluem wrote:
On 01/16/2009 12:21 AM, Rainer Jung wrote:
This difference goes back to pre 1.3 httpd.
The patch at
http://people.apache.org/~rjung/patches/reliable_error_log.patch
Just some quick comments below
Index: s
On 01/18/2009 03:52 PM, Rainer Jung wrote:
> Hi Rüdiger,
>
> first thanks for reviewing.
>
> On 17.01.2009 18:02, Ruediger Pluem wrote:
>>
>> On 01/16/2009 12:21 AM, Rainer Jung wrote:
>>
>>> This difference goes back to pre 1.3 httpd.
>>>
>>> The patch at
>>>
>>> http://people.apache.org/~rjun
On 18.01.2009 16:37, Ruediger Pluem wrote:
On 01/18/2009 03:52 PM, Rainer Jung wrote:
Hi Rüdiger,
first thanks for reviewing.
On 17.01.2009 18:02, Ruediger Pluem wrote:
On 01/16/2009 12:21 AM, Rainer Jung wrote:
This difference goes back to pre 1.3 httpd.
The patch at
http://people.apach
Oups, need to clarify.
On 18.01.2009 16:48, Rainer Jung wrote:
During startup or after restart we go through ap_open_logs() and thus
restart -> restart of httpd
after startup or restart, the write side of the original pl is closed
and the pipe is written to via the duped FD in stderr.
More
On 01/18/2009 04:48 PM, Rainer Jung wrote:
> On 18.01.2009 16:37, Ruediger Pluem wrote:
>>
>>>
>>> Step 6:
>>> ---
>>>
>>> open_error_log() calls
>>> apr_file_close(s_main->error_log)
>>
>> The call to apr_file_close happens in ap_open_logs not in open_error_log
>> and ap_open_logs is IM
pl = apr_palloc(p, sizeof (*pl));
pl->p = p;
+pl->program = (program == NULL) ? NULL : apr_pstrdup(p, program);
+pl->pid = NULL;
Why is this needed now? Or was this just missed previously and is not really
related to the reliable pipe usage of the error log?
This was borked.