From unknown Thu Jun 19 12:38:30 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#21715 <21715@debbugs.gnu.org> To: bug#21715 <21715@debbugs.gnu.org> Subject: Status: feat req: an option to skip directory inode comparison Reply-To: bug#21715 <21715@debbugs.gnu.org> Date: Thu, 19 Jun 2025 19:38:30 +0000 retitle 21715 feat req: an option to skip directory inode comparison reassign 21715 diffutils submitter 21715 Aaron Davies severity 21715 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 19 22:27:42 2015 Received: (at submit) by debbugs.gnu.org; 20 Oct 2015 02:27:42 +0000 Received: from localhost ([127.0.0.1]:57193 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZoMeL-00068k-OM for submit@debbugs.gnu.org; Mon, 19 Oct 2015 22:27:42 -0400 Received: from eggs.gnu.org ([208.118.235.92]:57557) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZoMeI-00068a-AB for submit@debbugs.gnu.org; Mon, 19 Oct 2015 22:27:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZoMeH-0003vh-2C for submit@debbugs.gnu.org; Mon, 19 Oct 2015 22:27:37 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:40654) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoMeG-0003vd-Vy for submit@debbugs.gnu.org; Mon, 19 Oct 2015 22:27:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39330) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoMeF-00064X-Vv for bug-diffutils@gnu.org; Mon, 19 Oct 2015 22:27:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZoMeC-0003u2-NQ for bug-diffutils@gnu.org; Mon, 19 Oct 2015 22:27:35 -0400 Received: from mail-wi0-x235.google.com ([2a00:1450:400c:c05::235]:34357) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoMeC-0003tZ-HN for bug-diffutils@gnu.org; Mon, 19 Oct 2015 22:27:32 -0400 Received: by wikq8 with SMTP id q8so24898147wik.1 for ; Mon, 19 Oct 2015 19:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:message-id:date :to:mime-version; bh=xocypU0paAtn5otJA93kSUuz1qDfuVuCsduhY83r3WE=; b=cE2iNv/ofbzEWNtkkvP7gt7bKHBDpWJOrUlWazjqYR2nSAPD3VApNaRHXpONrLaSkk j7F/IMMX1hmftNrrtGiKC5Hy9rMaS6giGKTcNsO9NlH7Ts91iIAClT5EReNGX0s89zcl Rbc75OBz/ePKn2UVR4+wWI/4F14LA0+TVqdPPNFcO4sIeIPxxtMP6+loYBYj5WW9xTK9 UxgXQb4wUogrbAsEfWCDJksxsWScstyaz+7SI1uZOlUTp0g2tI7n7JbmQYQbGE1SV/UA HDmjFs6bDrC8zYEbJqlakjRnR9ykxHxny6bXa3DnTw7ARdNEzrYbFT52B9NCiiSxCixt jIIQ== X-Received: by 10.180.76.177 with SMTP id l17mr1230838wiw.16.1445308052087; Mon, 19 Oct 2015 19:27:32 -0700 (PDT) Received: from [10.8.0.8] (nl4x.mullvad.net. [95.211.148.154]) by smtp.gmail.com with ESMTPSA id r9sm722455wjz.35.2015.10.19.19.27.30 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 19 Oct 2015 19:27:31 -0700 (PDT) From: Aaron Davies Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Subject: feat req: an option to skip directory inode comparison Message-Id: <18A193A3-1591-4696-B8D1-5B86ED291450@gmail.com> Date: Mon, 19 Oct 2015 22:27:28 -0400 To: bug-diffutils@gnu.org Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) X-Mailer: Apple Mail (2.2104) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) 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 $=20 --=20 Aaron Davies aaron.davies@gmail.com [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= From debbugs-submit-bounces@debbugs.gnu.org Mon May 16 00:23:10 2016 Received: (at 21715) by debbugs.gnu.org; 16 May 2016 04:23:10 +0000 Received: from localhost ([127.0.0.1]:53165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2A3i-0002xy-9R for submit@debbugs.gnu.org; Mon, 16 May 2016 00:23:10 -0400 Received: from mail-oi0-f65.google.com ([209.85.218.65]:34676) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2A3g-0002xm-8w for 21715@debbugs.gnu.org; Mon, 16 May 2016 00:23:08 -0400 Received: by mail-oi0-f65.google.com with SMTP id d139so27078556oig.1 for <21715@debbugs.gnu.org>; Sun, 15 May 2016 21:23:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=GdqmARgEMO2DQrJoS2VBT6z20PzYXtUC8KhxW8k3138=; b=sqxDgXbPIFwIQKDIGM3a/r2bOEkV4RpK49CinJmMMp2GK/0taRupybXR9VYmn4KefQ 7DjOe8WFKWOEjq2wrWtfX2IvZ64JKmgNtCNsbONfWmcqKroDnM5aDB34kE3SrP1q4Ub9 9QhctLGdjm7CjHA0kTuu85bLFMD6fA2xyNBKW1DVkpdpbvV9FipXHxMBC8K3ITLon0BG 0i04imHAeYm+NkvXy3iMGoMw0avOCWL7mwseurOHXXdkyr1n102mW/h2ETFTNA8hLFir rvtUZ03NTZQzwACBTiaJGahcYFXaG2/F2NYl5jzBU8eOOAH76L2GhsvO+953JXObkDkl HWXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=GdqmARgEMO2DQrJoS2VBT6z20PzYXtUC8KhxW8k3138=; b=PvhQCI1YPuXcB4Iq6kwQOjQQ0/WNkmUzoeuQEC64isEP5djShpEEEyT24wefBC4VUO vg1edJrGm/xDyFyneKRYLL02WAHRRMA0gbVtK/FIjpvRGN7yF59OYKd7YpDOcT20iJzw gYAJkNYaPvQE7nfJQzWqADDdF+xBLIMLVzdo93Pgu3VXnl4IO59Vtkm2hRdnSQ/zT4rr 0tJZ/wMBQTVaygZdHpW69RqETWHPW3/yaKYa44dZ7V9Uwumlse48CM4+B9VpJFhBJyEA JHXAarvs/UPDuK3QK2e8OztyutRwctGOjgZJi4fzLc4Pp3L0Lf5i+/jywO+Shgy2PJdD 5QIw== X-Gm-Message-State: AOPr4FWPzcnt6ODsVBczdG2htfO8HLxi5lzSETcg5PKnl8I5xo00XPQSZC+CFs/7GlBjl7QejY4ZHoYW9zMRcw== X-Received: by 10.157.11.183 with SMTP id 52mr14563282oth.103.1463372582615; Sun, 15 May 2016 21:23:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.175.193 with HTTP; Sun, 15 May 2016 21:22:42 -0700 (PDT) In-Reply-To: <18A193A3-1591-4696-B8D1-5B86ED291450@gmail.com> References: <18A193A3-1591-4696-B8D1-5B86ED291450@gmail.com> From: Jim Meyering Date: Sun, 15 May 2016 21:22:42 -0700 X-Google-Sender-Auth: aYQOi_N62Gcq35twY7oPTze68Qg Message-ID: Subject: Re: [bug-diffutils] bug#21715: feat req: an option to skip directory inode comparison To: Aaron Davies Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 21715 Cc: 21715@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On Mon, Oct 19, 2015 at 7:27 PM, Aaron Davies wrot= e: > i have a situation where diff -r of two directories fails to report diffe= rences that diff of two files in those directories shows > > i haven't dug into the code yet, but the directories involved are on an N= FS mount of a netapp filer, one is the copy-on-write snapshot counterpart o= f 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 say= s that any two directories that are on the same fs and are the same inode m= ust have identical descendent contents and can be skipped completely > > this fs probably violates POSIX by doing this, but there's no easy way ar= ound 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 pro= blem > > 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 > aaron.davies@gmail.com > > [1] when i ran into this, i ended up using something like diff <(find .sn= apshot/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 clean= ing it up for general purpose use would essentially be rewriting the -r par= t of diff from scratch Hi Aaron, 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 From debbugs-submit-bounces@debbugs.gnu.org Mon May 16 02:13:13 2016 Received: (at 21715) by debbugs.gnu.org; 16 May 2016 06:13:13 +0000 Received: from localhost ([127.0.0.1]:53182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2BmC-0005bA-QX for submit@debbugs.gnu.org; Mon, 16 May 2016 02:13:12 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:42636) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2BmA-0005as-9d for 21715@debbugs.gnu.org; Mon, 16 May 2016 02:13:10 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 576281612D8; Sun, 15 May 2016 23:13:04 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id rBlkFO76fwgC; Sun, 15 May 2016 23:13:03 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A59D71612DD; Sun, 15 May 2016 23:13:03 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Xcj_0S7eSRb3; Sun, 15 May 2016 23:13:03 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 86B191612D8; Sun, 15 May 2016 23:13:03 -0700 (PDT) Subject: Re: [bug-diffutils] bug#21715: bug#21715: feat req: an option to skip directory inode comparison To: Jim Meyering , Aaron Davies References: <18A193A3-1591-4696-B8D1-5B86ED291450@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <573964EF.8000801@cs.ucla.edu> Date: Sun, 15 May 2016 23:13:03 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 21715 Cc: 21715@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) 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 direct= ory, > and see different inode numbers for the directories: >=20 > $ 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 fairl= y 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. From debbugs-submit-bounces@debbugs.gnu.org Mon May 16 15:28:45 2016 Received: (at 21715-done) by debbugs.gnu.org; 16 May 2016 19:28:46 +0000 Received: from localhost ([127.0.0.1]:54403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2OC5-0000JN-M1 for submit@debbugs.gnu.org; Mon, 16 May 2016 15:28:45 -0400 Received: from mail-ob0-f196.google.com ([209.85.214.196]:34910) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2OC4-0000JB-Fk for 21715-done@debbugs.gnu.org; Mon, 16 May 2016 15:28:45 -0400 Received: by mail-ob0-f196.google.com with SMTP id o7so2703549obl.2 for <21715-done@debbugs.gnu.org>; Mon, 16 May 2016 12:28:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=sbGMadwxPBBivEFdqJdWtzH3xf1fKTJcu6LsdCeTZkE=; b=VQdC7vaPeBdkwJtKK3ar2vIEgA1DvcGCrEjbBF2wC/AZGOpxhPmxr9+2X2+dqIrJtU xA1V5WeOsKLWRzdKAPa5yDnwqcBUDYXvDK4zOrIJpZjCJGegBAS6T9lKk4VNE1CCTagY URko51HQBht0Nvzw6/aK0qdyxSWP++N84K3dhG7cdfFP+bscvTH4YhABgllkZKlFuex3 fogj40baVCFRRt48SSWEQVH/5f5Cn/SWQB5+A0ZHpJe6paemy8LPcfCNYjTKK2APck2j avwGGYwik48eLF8/ddAWHK1alNnLKx0M7qh5Ac25MlWaVCfkh+XTN7Z2vM4SCQx7sEI+ TZtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=sbGMadwxPBBivEFdqJdWtzH3xf1fKTJcu6LsdCeTZkE=; b=WVDQXu+gFc60SCLjt+ylBRxc2fB+FZ6DSVLd61KyunFVKhBGiv1+14xIslUtfRqMwI YD0AOo1lTBV0uAkaQKqOP1IBpKtOu08RMgZYZgNXctIKBY57X38X+5jzZOCewcmYDF+J dGauArJzEnPtO63ICLd+7facvJBid+OLtEEty6QHtvWHPGYMphyzKecNDKmioPgeDMYm rhY0MD/+txi8YqkLVQZpsHwrCX6XtkWIaw953+qchBbvrZ/NJaUSxxNeLRP4STHUFKkr VNiOp1G/4m6e+oQ2U8pEKLK9CpRHQUek6S7UUqhxRQMvHDxsPnY8Xnj3dVmHOoynTmsV ry4A== X-Gm-Message-State: AOPr4FVqtnEj7/mXrpIhzqrS7kr9jNbODWHiYmjWogzUaS+QbzmcYN20QjtutjwriH67aT7y+WmFveBEa0FE8A== X-Received: by 10.157.48.89 with SMTP id w25mr1159714otd.32.1463426918643; Mon, 16 May 2016 12:28:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.175.193 with HTTP; Mon, 16 May 2016 12:28:18 -0700 (PDT) In-Reply-To: <573964EF.8000801@cs.ucla.edu> References: <18A193A3-1591-4696-B8D1-5B86ED291450@gmail.com> <573964EF.8000801@cs.ucla.edu> From: Jim Meyering Date: Mon, 16 May 2016 12:28:18 -0700 X-Google-Sender-Auth: gd8z-D285Zjch1Q-2j0j0WuedEw Message-ID: Subject: Re: [bug-diffutils] bug#21715: bug#21715: feat req: an option to skip directory inode comparison To: Paul Eggert Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 21715-done Cc: Aaron Davies , 21715-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On Sun, May 15, 2016 at 11:13 PM, Paul Eggert 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. From unknown Thu Jun 19 12:38:30 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 14 Jun 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator