[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NFS--mounted builddirs and detecting clock skew
From: |
Bob Friesenhahn |
Subject: |
Re: NFS--mounted builddirs and detecting clock skew |
Date: |
Wed, 21 Nov 2007 19:52:33 -0600 (CST) |
On Thu, 22 Nov 2007, Harlan Stenn wrote:
I use the last one quite often these days but sometimes I use the
first.
More than likely the various different possibilities I pointed out
seem a bit tiresome but they will eventually be important to someone.
I did miss one important case which is the case of "overlay" type
filesystems where the files in a directory may come from different
local disks, or from remote servers. These can be quite useful. One
useful case is to be able to apparently "write" into the source
directory without actually updating/adding files in the disk directory
where the source files truely reside.
There seems to be several issues here. Is the following a usefully
sufficient question to ask:
If I touch a file now, how far off is the timestamp on the file I touch
from what I think the time is?
The time returned by the filesystem is the time that the system owning
the filesystem updated the file. This means that if you touch a file
in a NFS directory then the timestamp is the time known to the NFS
server. Touching a file on the local system obtains the time known to
the local system.
Yes, this all boils down to the meaning of "detectable".
CPUs are fast enough these days that it is possible for object files
to be output in the same time quantum as the intermediate file the
object file originated from. The only solution to this is to
intentionally slow down fast operations.
At the moment, I am inclined to think that if 'make' will detect it,
then I care. And this is clearly an insufficient definition. Perhaps
the 'check-clock-skew' program would have a "useful" default threshhold,
and there could be an option to specify a different threshhold.
My understanding of 'make' is that it uses the times reported by the
filesystems and does not care about the local clock time. So if the
source files are on one network server and the object files are
written to another network server, then the time difference make cares
about is the time difference between the two servers. Since builds
usually use a local temporary directory, then such builds may also
care about the local system time if make knows about the temporary
files.
If the source tree is treated as read only, then make is happy if the
files it creates are always newer than those in the source tree.
Bob
======================================
Bob Friesenhahn
address@hidden, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/