Package: strace Version: 4.5.20-2.3 On 32-bit systems, strace is not compiled with -D_FILE_OFFSET_BITS=64 (and the essential message of this bug-report is that ALL programs that use stat() in any way whatsoever should always be compiled with this define).
As a result, stat() can fail with EOVERFLOW for the absurd reason that the inode number of the stat()ed file is greater than (1<<31)-1. This occurs, in particular, on XFS filesystems of over 1TB in size (when using 256-byte inodes), according to <URL: http://xfs.org/docs/xfsdocs-xml-dev/XFS_User_Guide/tmp/en-US/html/ch06s06.html >. Under these circumstances (when running a 32-bit userland on a 64-bit Linux kernel), strace will, for certain files, fail with the error message "command not found" even though the file exists, simply because the st_ino field of the stat result structure cannot be represented in the 32-bit API. This is not a purely theoretical fear: I just spent a considerable time pulling my hair trying to understand why strace was telling me a file did not exist when evidently it did. Solution: compile strace with -D_FILE_OFFSET_BITS=64 so as to make ino_t 64-bit wide. The same argument applies to every program that makes use of stat() at some point. (I think this should be a Debian policy of some kind, but I don't know where these should be submitted. Please enlighten me.) -- David A. Madore ( http://www.madore.org/~david/ ) -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org