|
From: | GNU bug Tracking System |
Subject: | [debbugs-tracker] bug#29092: closed (Bug related to 64-bit inodes) |
Date: | Sun, 07 Jan 2018 01:04:02 +0000 |
Your message dated Sat, 6 Jan 2018 17:02:43 -0800 with message-id <address@hidden> and subject line Re: [bug-idutils] bug#29092: bug#29092: bug#29092: bug#29092: Bug related to 64-bit inodes has caused the debbugs.gnu.org bug report #29092, regarding Bug related to 64-bit inodes to be marked as done. (If you believe you have received this mail in error, please contact address@hidden) -- 29092: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29092 GNU Bug Tracking System Contact address@hidden with problems
--- Begin Message ---Subject: Bug related to 64-bit inodes Date: Tue, 31 Oct 2017 12:03:57 -0700 Hi,I'm running idutils 4.6 on Ubuntu 14.04 to index a large source base that is on an NFS-mounted filesystem that uses 64-bit inodes. mkid incorrectly issues many warnings such as the following:/home/csm/src/idutils-4.6/src/mkid: warning: `/df-csm/ir-csm7/platform/dot/ir/component/si5338/si5338.py' and `/df-csm/ir-csm7/hardware/perf/CTRL_systemC/src/demux.hpp' are the same file, but yield different scans!It turns out these inodes are equal in the lower 32 bits, but are not equal.% ls -li /df-csm/ir-csm7/platform/dot/ir/component/si5338/si5338.py /df-csm/ir-csm7/hardware/perf/CTRL_systemC/src/demux.hpp33776997256654722 -rwxr-xr-x 1 csm staff 3290 May 22 22:03 /df-csm/ir-csm7/hardware/perf/CTRL_systemC/src/demux.hpp63050394834562946 -rw-r--r-- 1 csm staff 28973 May 22 22:03 /df-csm/ir-csm7/platform/dot/ir/component/si5338/si5338.pyThe inode numbers in hex are 780000030FEF82 and E00000030FEF82, respectively.I believe the bug is that the inode hash functions should account for the size of the di_ino field in case it is 8 bytes wide, rather than assuming they are always 4 bytes:/****************************************************************************//* Hash stuff for `struct dev_ino'. */static unsigned longdev_ino_hash_1 (void const *key){unsigned long result = 0;INTEGER_HASH_1 (((struct dev_ino const *) key)->di_dev, result);INTEGER_HASH_1 (((struct dev_ino const *) key)->di_ino, result);return result;}static unsigned longdev_ino_hash_2 (void const *key){unsigned long result = 0;INTEGER_HASH_2 (((struct dev_ino const *) key)->di_dev, result);INTEGER_HASH_2 (((struct dev_ino const *) key)->di_ino, result);return result;}As an unrelated issue, in order to get idutils 4.6 to compile on Ubuntu 14.0.4 I had to edit lib/stdio.h and change "#if 1" to "#if 0" for the section that deals with the "gets" function (libc 2.19-0ubuntu6.13).Regards,--Curt McDowell / Pure Storage / FlashBlade
--- End Message ---
--- Begin Message ---Subject: Re: [bug-idutils] bug#29092: bug#29092: bug#29092: bug#29092: Bug related to 64-bit inodes Date: Sat, 6 Jan 2018 17:02:43 -0800 On Sat, Jan 6, 2018 at 4:56 PM, Jim Meyering <address@hidden> wrote: > On Fri, Jan 5, 2018 at 8:27 PM, Jim Meyering <address@hidden> wrote: >> On Mon, Dec 18, 2017 at 8:36 PM, Jim Meyering <address@hidden> wrote: >>> On Mon, Dec 18, 2017 at 3:31 PM, Curt McDowell <address@hidden> wrote: >>>> Jim, >>>> >>>> Thanks for getting to this. I applied the patch and was surprised to see it >>>> still has the same bug! There is another comparison function that needs >>>> fixing. I verified that 64-bit inodes work properly with this additional >>>> change: >>>> >>>> static int >>>> dev_ino_hash_compare (void const *x, void const *y) >>>> { >>>> int result; >>>> result = memcmp(&((struct dev_ino const *) x)->di_ino, >>>> &((struct dev_ino const *) y)->di_ino, sizeof (ino_t)); >>>> if (result) >>>> return result; >>>> result = memcmp(&((struct dev_ino const *) x)->di_dev, >>>> &((struct dev_ino const *) y)->di_dev, sizeof (ino_t)); >>>> return result; >>>> } >>> >>> Thank you for the quick testing and patch. >>> >>> I've simplified that but left it in your name. However, since it's >>> still in your name, yet modified, I'll wait for your ACK before >>> pushing (check both author-name+email and wording of the commit log as >>> well as the actual patch, since we treat master-pushed commits as >>> immutable): >> >> Ping? > > Pushed, in spite of no reply. Incidentally, I've just updated gnulib and copyright notices, too. Marking this as "done".
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |