Possible patch to cure CGI's not finding data for objects in status.dat

Andreas Ericsson ae at op5.se
Fri Aug 7 10:30:40 CEST 2009


Cary Petterborg wrote:
> In response to your request for details of our system: We are running
> SuSE 9 writing to a Rieser FS (with a separate web server reading the
> status.dat, etc. from an NFS mount off the main Nagios server). Our
> status.dat file is 37MB, and objects.cache is 32MB. If you need more
> details than this, please let me know what you need.
> 

I blame NFS. Don't use it for sync()-sensitive data, as caching happens
on multiple levels. The patch hurts the normal case (webserver on same
system as Nagios) though, so I'd prefer if it wasn't applied.

> 
> I may be wrong in this next information, but I did homework on it
> before proceeding to try to implment the fix on our system, and I'm
> taking the information from what I found. The fsync() call is the
> more important function call in the fix. fclose() almost always
> guarantees fflush(), but it doesn't guarantee that it will be written
> to the disk immediately, especially if the program doesn't exit.

It doesn't have to be written to disk. After the fclose() the kernel
will cache the data so the next reader will still see the full file
contents no matter if it's actually committed to disk or not.
fsync() and fflush() are primarily meant to make sure data stays
intact across power outages.

NFS breaks this sometimes. CIFS is a better option, I think.
What happens if you use a webserver on the same host?
What happens if you use CIFS instead of NFS?

-- 
Andreas Ericsson                   andreas.ericsson at op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

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.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july




More information about the Developers mailing list