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

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.

Ken

In GNU Emacs 26.0.50 (build 11, i686-pc-cygwin, GTK+ Version 3.18.9)
  of 2017-02-23 built on desktop-new
Repository revision: 16efea3a883ebf633946ee9b9d0681eb55437878
Windowing system distributor 'The Cygwin/X Project', version 11.0.11901000