On Thu, Aug 02, 2007 at 11:33:04AM +0200, Robert Felber wrote:
> On Thu, Aug 02, 2007 at 09:11:05AM +0100, Thomas Krieger wrote:
> > >> > 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.
> > >>
> > >> Postgrey had the same problem, simple fix. Upgrade Sys::Syslog.
> > >>
> > >> http://lists.ee.ethz.ch/postgrey/msg01815.html
> > >
> > >.. and policyd-weight needs to add nofatal to openlog call too.
> > 
> > Well the Sys::Syslog in Debian Sarge is quit old. It's perl 5.8.4 and
> > the Sys::Syslog version is 0.05 I think.
> > 
> > I will update to the newest version of Sys::Syslog.
> > 
> > Robert will you change the openlog accordingly?
> 
> nofatal cannot be made default as per configuration (well, it can
> but this would add perl "exception"-code to the standard config). 
> 
> But Henrik sent me the postgrey way of avoiding this. At least this
> way the master doesn't die - but the information which should be logged
> won't be logged.
> 
> I think I will try an eval loop and if that fails after some runs we
> log to the console. Don't know whether that is cleanly portable, though.

I have updated policyd-weight devel to work around syslog absence.
In cases of syslog absence it logs an polw-emergency.log to $LOCKPATH

I haven't used /var/log stuff here because policyd-weight children are not
root, and the file shall only be present if syslog absent.

It is up to the administrator the check for this file and remove/cycle
it. It is not expected to exist or grow continuously.


-- 
    Robert Felber (PGP: 896CF30B)
    Munich, Germany

____________________________________________________________
Policyd-weight Mailinglist - http://www.policyd-weight.org/

Reply via email to