On Mon, Jul 30, 2007 at 06:42:12PM +0200, Thomas Krieger wrote:
> > > I hope this will help to find the cause of the problem.
> >
> > Unfortunately not. It doesn't tell why the children received
> > SIGPIPE. It doesn't appear to be reproduceable either.
>
> Ok, I searched the logfiles for policyd warnings. I did on 27th and 28th, the
> day of the crash. Please find attached the output as gz file. But I do not
> find any master messages in the file. But there are a view messages
> concerning syslog and the crash happend during log rotation on the productive
> server.
>
> Testing on my test server killing a child with SIGPIPE does not kill the
> master. Everything goes on fine. Strange problem I think. I will investigate
> this further on.
>
The master die()d because Sys::Syslog throw a die() when the
master attempted to use syslog().
This appears to be a race condition when syslog is not available
for log-message submission.
I am afraid I cannot resolve this cleanly.
My approach would be, to retry syslog() for a certain amount
of time or retry-number in an eval() loop. This however is
not clean. I currently cannot imagine of another more sophisticated
way (well, one way would exist - to don't use syslog anymore but an
own log-file - this again requires some SIG handling in cases of
logrotation).
--
Robert Felber (PGP: 896CF30B)
Munich, Germany
____________________________________________________________
Policyd-weight Mailinglist - http://www.policyd-weight.org/