Daemonizing Logic Error
Andreas Ericsson
ae at op5.se
Sat May 16 12:55:43 CEST 2009
Devin Bayer wrote:
> Hello:
>
> We faced an issue when nagios silently failed to fork. Since it's
> part of our startup scripts, this delayed the rest of the daemons
> until nagios exited.
While it's bad that Nagios fails to daemonize OR die properly, your
startup-script parser really shouldn't hang indefinitely when it
encounters a start-script that doesn't return. I believe this should
be bug-reported to your distribution-vendor separately.
> For this reason nagios should take care, that if
> it doesn't daemonize correctly, it should die. We are using nagios
> 3.0.5, but I see the bug still exists in the trunk. Here is our
> nagios.log showing the problem:
>
> [1242115575] Nagios 3.0.5 starting... (PID=773)
> [1242115575] Local time is Tue May 12 11:06:15 EEST 2009
> [1242115575] LOG VERSION: 2.0
> [1242115575] Finished daemonizing... (New PID=773)
>
Right. This is indeed odd.
> Notice the "New PID" equals the old PID. I think this is the problem
> code, from base/utils.c:
>
> 2036 : /* check for SIGHUP */
> 2037 : if(val==1 && (pid=(pid_t)pidno)==getpid()){
> 2038 : close(lockfile);
> 2039 : return OK;
> 2040 : }
>
> If nagios is started at boot time, it's somewhat likely it will have
> about the same PID on the next boot. So if the lockfile isn't cleaned
> for some reason, then nagios will start, read the lockfile, and not
> fork.
>
> 2042 : /* exit on errors... */
> 2043 : if((pid=fork())<0)
> 2044 : return(ERROR);
>
> This looks like another bug. If fork fails, we return ERROR, but the
> return code is just silently ignored.
>
Hmm. I'll look into this and see what may be done. Thanks for the report.
--
Andreas Ericsson andreas.ericsson at op5.se
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231
Register now for Nordic Meet on Nagios, June 3-4 in Stockholm
http://nordicmeetonnagios.op5.org/
Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
More information about the Developers
mailing list