emacs-bug-tracker
[Top][All Lists]
Advanced

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

[debbugs-tracker] bug#21715: closed (feat req: an option to skip directo


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#21715: closed (feat req: an option to skip directory inode comparison)
Date: Mon, 16 May 2016 19:29:01 +0000

Your message dated Mon, 16 May 2016 12:28:18 -0700
with message-id <address@hidden>
and subject line Re: [bug-diffutils] bug#21715: bug#21715: feat req: an option 
to skip directory inode comparison
has caused the debbugs.gnu.org bug report #21715,
regarding feat req: an option to skip directory inode comparison
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
21715: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21715
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: feat req: an option to skip directory inode comparison Date: Mon, 19 Oct 2015 22:27:28 -0400
i have a situation where diff -r of two directories fails to report differences 
that diff of two files in those directories shows

i haven't dug into the code yet, but the directories involved are on an NFS 
mount of a netapp filer, one is the copy-on-write snapshot counterpart of the 
other, they show up as the same filesystem, and are the same inode

so my guess is that there's something in the recursive traversal that says that 
any two directories that are on the same fs and are the same inode must have 
identical descendent contents and can be skipped completely

this fs probably violates POSIX by doing this, but there's no easy way around 
it[1], so it would be very useful if diff had a command-line option to turn 
that optimization off

i've heard anecdotal reports of other filesystems that cause the same problem

here's a sample session:

$ mkdir foo
$ echo baz >foo/bar
$ # wait until the next snapshot is created
$ echo quux >foo/bar
$ diff -r .snapshot/nightly.0/foo foo
$ diff .snapshot/nightly.0/foo/bar foo/bar
1c1
< baz
---
> quux
$ stat -c %i .snapshot/nightly.0/foo foo
69403847
69403847
$ 
-- 
Aaron Davies
address@hidden

[1] when i ran into this, i ended up using something like diff <(find 
.snapshot/nightly.0/foo -type f|sort|xargs cat) <(find foo -type f|sort|xargs 
cat) to do the comparison -- sufficient for my needs at the time, but cleaning 
it up for general purpose use would essentially be rewriting the -r part of 
diff from scratch


--- End Message ---
--- Begin Message --- Subject: Re: [bug-diffutils] bug#21715: bug#21715: feat req: an option to skip directory inode comparison Date: Mon, 16 May 2016 12:28:18 -0700
On Sun, May 15, 2016 at 11:13 PM, Paul Eggert <address@hidden> wrote:
> Jim Meyering wrote:
>> Thanks for the suggestion, but what NetApp software are you using?
>> I've just tried to reproduce that on a NetApp-backed nfs-mounted directory,
>> and see different inode numbers for the directories:
>>
>>   $ stat --format %i foo .snapshot/hourly.2016-05-15_*/foo
>>   97582543
>>   97557711
>
> I can reproduce the problem on my platform: a RHEL 7 client
> (3.10.0-327.10.1.el7.x86_64 kernel), with a NetApp server running a fairly old
> release. The last time I asked (in 2010), they were running netapp-6.5.6 on 
> the
> file server.
>
> As far as I know, only NetApp has the inode-number bug. It's had the bug for
> many years, and I'm a bit surprised to see that they fixed it in a recent 
> release.

I confess I was surprised, too, after so many years.
Running `version` on the server my client used prints this:

  NetApp Release 8.3.1P2: Wed Dec 09 03:10:24 UTC 2015

As such, it feels ok to close this.


--- End Message ---

reply via email to

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