bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-tar] "file changed as we read it" on MacOS X


From: Bruno Haible
Subject: [Bug-tar] "file changed as we read it" on MacOS X
Date: Sat, 24 Dec 2011 07:57:57 +0100
User-agent: KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; )

Hi,

On MacOS X 10.5.8, with GNU tar 1.15.1, I'm seeing spurious
"file changed as we read it" messages.

$ tar cf - * | (cd /Volumes/ExtData\ 1 && tar xf -)
tar: source/gnu/coreutils/coreutils-8.10.tar.gz: file changed as we read it
tar: 
source/newest/autoconf-git/autoconf/.git/objects/a2/3101e691e70cfe012e92972c6246ac9e4b77ff:
 file changed as we read it
tar: 
source/newest/autoconf-git/autoconf/.git/objects/pack/pack-daff51c2dcb6480adc3e896592c1d39458518d6c.pack:
 file changed as we read it
tar: 
source/newest/autoconf-git/autoconf/.git/objects/pack/pack-ec56017ee8785d4489a2b63d2315fdd9f3f505b5.pack:
 file changed as we read it
tar: 
source/newest/automake-git/automake/.git/objects/pack/pack-23eb2e17fe3034bd40bf742331e05bd9ad25afa3.pack:
 file changed as we read it
tar: 
source/newest/automake-git/automake/.git/objects/pack/pack-7b4533c625c3bf6c50258502e9968ee8a47c02bd.pack:
 file changed as we read it
tar: 
source/newest/bison-git/bison/.git/objects/pack/pack-af6a4284e938cbd2e4ca00d81e3d9c61b080d931.pack:
 file changed as we read it
tar: source/newest/clisp-cvs-anynomous/clisp/doc/impnotes.html: file changed as 
we read it
tar: source/newest/clisp-cvs-anynomous/clisp/src/ChangeLog: file changed as we 
read it
tar: source/newest/clisp-hg/clisp/.hg/store/00manifest.d: file changed as we 
read it
tar: source/newest/clisp-hg/clisp/.hg/store/data/src/_change_log.d: file 
changed as we read it
tar: source/newest/clisp-hg/clisp/doc/impnotes.html: file changed as we read it
tar: 
source/newest/coreutils-git/coreutils/.git/objects/pack/pack-574ba8563ce17957cd523b0a657e7902cdea74fb.pack:
 file changed as we read it
tar: 
source/newest/coreutils-git/coreutils/.git/objects/pack/pack-66619a932bbeb980b7b52c55bea8643a3ea253d4.pack:
 file changed as we read it
tar: 
source/newest/coreutils-git/coreutils/.git/objects/pack/pack-a0798ec6b3b6c1106e91919a5dc38565fdd46e31.pack:
 file changed as we read it
tar: source/newest/emacs-git/emacs/.git/gitk.cache: file changed as we read it
tar: 
source/newest/emacs-git/emacs/.git/objects/pack/pack-2cfb4d88099d798bf15e17ba67fe14d2ce2a420f.idx:
 file changed as we read it
tar: source/newest/gmp-hg/gmp/.hg/store/00manifest.d: file changed as we read it
tar: source/newest/gmp-hg/gmp/.hg/store/fncache: file changed as we read it
tar: 
source/newest/grep-git/grep/.git/objects/pack/pack-a5b64ecbf6e5a15cb7efb14fd5cce5c391767cd9.pack:
 file changed as we read it
tar: 
source/newest/libtool-git/libtool/.git/objects/pack/pack-16746b45b083c7900bbae629962d589a10d0e751.pack:
 file changed as we read it
tar: 
source/newest/m4-git/m4-branch-1.4/.git/objects/pack/pack-06097b65ba7b944b67e198ea08725d0687bbe25c.pack:
 file changed as we read it
tar: 
source/newest/m4-git/m4-branch-1.6/.git/objects/pack/pack-4fcc00a1f64eca5c7f8be90826ab560570ff61e5.pack:
 file changed as we read it
tar: source/newest/octave-hg/octave/.hg/store/fncache: file changed as we read 
it

As you can see, the particular (few) files which triggered these messages
have indeed a "change" time that falls into the time interval of the tar
command:

$ ls -lrtc source/gnu/coreutils/
total 557872
-rw-r--r--  1 admin  staff   3501022 23 Feb  2007 coreutils-20050520.tar.bz2
-rw-r--r--  1 admin  staff   5930484 23 Feb  2007 coreutils-20060430.tar.gz
-rw-r--r--  1 admin  staff   6564837 23 Feb  2007 coreutils-5.2.1.tar.gz
-rw-r--r--  1 admin  staff   7495513 23 Feb  2007 coreutils-5.92.tar.gz
-rw-r--r--  1 admin  staff   7585366 23 Feb  2007 coreutils-5.93.tar.gz
-rw-r--r--  1 admin  staff   7860453 23 Feb  2007 coreutils-5.94.tar.gz
-rw-r--r--  1 admin  staff   7860755 23 Feb  2007 coreutils-5.95.tar.gz
-rw-r--r--  1 admin  staff   5064684 23 Feb  2007 coreutils-5.97.tar.bz2
-rw-r--r--  1 admin  staff   7890721 23 Feb  2007 coreutils-5.96.tar.gz
-rw-r--r--  1 admin  staff   8280892 23 Feb  2007 coreutils-6.0.tar.gz
-rw-r--r--  1 admin  staff   7778578 23 Feb  2007 coreutils-6.3.tar.gz
-rw-r--r--  1 admin  staff   7850655 23 Feb  2007 coreutils-6.3a.tar.gz
-rw-r--r--  1 admin  staff   8021033 23 Feb  2007 coreutils-6.4.tar.gz
-rw-r--r--  1 admin  staff   8054526 23 Feb  2007 coreutils-6.5.tar.gz
-rw-r--r--  1 admin  staff   8057533 23 Feb  2007 coreutils-6.6.tar.gz
-rw-r--r--  1 admin  staff   8013852 23 Feb  2007 coreutils-6.7.tar.gz
-rw-r--r--  1 admin  staff   8194001 24 Mär  2007 coreutils-6.9.tar.gz
-rw-r--r--  1 admin  staff   8893255  4 Nov  2007 coreutils-6.9-375-3e3f8.tar.gz
-rw-r--r--  1 admin  staff   9193125  2 Feb  2008 coreutils-6.10.tar.gz
-rw-r--r--  1 admin  staff   9095150 20 Apr  2008 coreutils-6.11.tar.gz
-rw-r--r--  1 admin  staff   8995806 30 Mai  2008 
coreutils-6.11.104-00a30.tar.gz
-rw-r--r--  1 admin  staff   9001890  1 Jun  2008 coreutils-6.12.tar.gz
-rw-r--r--  1 admin  staff   9533070  3 Mär  2009 coreutils-7.1.tar.gz
-rw-r--r--  1 admin  staff   9690396  3 Mai  2009 coreutils-7.3.tar.gz
-rw-r--r--  1 admin  staff   9956013  8 Nov  2009 coreutils-7.5.tar.gz
-rw-r--r--  1 admin  staff  10379352 21 Nov  2009 coreutils-8.1.tar.gz
-rw-r--r--  1 admin  staff  10734711  8 Jan  2010 coreutils-8.3.tar.gz
-rw-r--r--  1 admin  staff  10519759 23 Feb  2010 coreutils-8.4.tar.gz
-rw-r--r--  1 admin  staff  11250122 22 Jan  2011 coreutils-8.9.tar.gz
-rw-r--r--  1 admin  staff  11495445 26 Apr  2011 coreutils-8.11.tar.gz
-rw-r--r--  1 admin  staff  11496560 26 Apr  2011 coreutils-8.12.tar.gz
-rw-r--r--  1 admin  staff  10014650 22 Dez 12:20 coreutils-7.6.tar.gz
-rw-r--r--  1 admin  staff  11310572 23 Dez 00:17 coreutils-8.10.tar.gz

$ ls -lrtc source/newest/grep-git/grep/.git/objects/pack
total 5824
-r--r--r--  1 admin  staff   139924 20 Mär  2010 
pack-a5b64ecbf6e5a15cb7efb14fd5cce5c391767cd9.idx
-r--r--r--  1 admin  staff   147165 24 Mär  2010 
pack-cf835197aa8a2424472c656fc0aa7fae42203b11.pack
-r--r--r--  1 admin  staff     5972 24 Mär  2010 
pack-cf835197aa8a2424472c656fc0aa7fae42203b11.idx
-r--r--r--  1 admin  staff   311897 24 Mai  2010 
pack-3326dea8947daf48979e3b05104bd5b08cc81351.pack
-r--r--r--  1 admin  staff    23192 24 Mai  2010 
pack-3326dea8947daf48979e3b05104bd5b08cc81351.idx
-r--r--r--  1 admin  staff   437151 24 Sep 16:01 
pack-9b98a444409e717f936992f451d7a589d1ce310a.pack
-r--r--r--  1 admin  staff    25292 24 Sep 16:01 
pack-9b98a444409e717f936992f451d7a589d1ce310a.idx
-r--r--r--  1 admin  staff  1873926 23 Dez 01:06 
pack-a5b64ecbf6e5a15cb7efb14fd5cce5c391767cd9.pack

More about the circumstances:
  * The tar command copied the contents of a 90 GB partition.
  * This disk is formatted in HFS+ (with case distinction and journaling).
  * This disk is NFS exported, but at the time the tar command ran,
    it was not mounted by any NFS client.
  * It is possible that the MacOS X "Spotlight" indexer daemon and the
    MacOS X "Time Machine" incremental backup were running at the same time.
  * The messages all occurred in two subdirectories sources/{gnu,newest}
    that occupy 10 GB. The other 80 GB of data on the disk did not trigger
    these messages. What is particular about these subdirectories, is that I
    often access them through NFS mounts from a Linux machine (both reading
    and writing). All the */.hg/store/* and */.git/objects/pack/* files
    were created and written through NFS. But note that some of these changes
    date back several months (and multiple reboots of the MacOS X machine)
    in time.
  * When I tarred up the disk's contents once again
    ("tar cf - . | cat > /dev/null"), no such messages occurred any more.

I therefore get the impression that when 'tar' opens the files for reading,
the OS executes some kinds of "pending" changes on the files, which has the
side effect of bumping the "change" time of the files. Accessing files
through NFS appears to have a certain, small probability of creating such
"pending" changes.

Does that sound plausible?

Bruno



reply via email to

[Prev in Thread] Current Thread [Next in Thread]