Subject: Re: bug#25854: 26.0.50; tramp-test19-directory-files-and-attributes fails on 32-bit Cygwin

From: Eli Zaretskii <[email-masked]>
Date: Fri, 24 Feb 2017 09:55:33 +0200

> From: Ken Brown <[email-masked]>
> Date: Thu, 23 Feb 2017 18:19:50 -0500
> 
> Starting with commit 3a6df2d,
> tramp-test19-directory-files-and-attributes fails on 32-bit Cygwin.  The
> reason is that inode numbers tend to be very large, on the order of
> 10^17, at least on my systems.  As a result, the "convert inode" code in
> tramp-convert-file-attributes always falls back to tramp-get-inode.
> Since this increments by 1 on every call, the file-attribute comparisons
> in tramp-test19-directory-files-and-attributes always fail.
> 
> The significance of commit 3a6df2d is that it makes
> tramp-get-remote-stat return a non-nil value, so that tramp uses 'stat'
> for file attributes; this returns the true (large) inode number.  Prior
> to that commit, tramp-get-remote-stat would always return nil, so that
> the tramp-perl-file-attributes script would be used for file
> attributes.  This script uses whatever inode number is returned by
> Perl's version of 'stat', which is presumably some sort of 32-bit
> truncation of the true inode number.
> 
> Although I'm seeing this on 32-bit Cygwin, it seems to me that it could
> in principle happen on any 32-bit platform.

Would it work to convert the large inode values to a float?