(0008351)
adb (reporter)
2010-10-04 21:10
|
[I sent this earlier via email, but apparently that doesn't update the issue notes]
I think I was mistaken about it being related to # of blocks; it may
actually be a issue with the size of inode numbers.
The filesystem is NFS-mounted from an Isilon cluster. It's currently
1TB; at the time I submitted the bug report, I think it was rather
larger. (It's carved out with a server-side quota from a 1PB
filesystem.) I still see the bug on all our Isilon filesystems, but
not on NetApp or local filesystems.
Files on the Isilon filesystems typically have inode numbers > 2^32,
while creating the test file on the NetApp and local filesystems
generally yields inode numbers in the millions. Attached are example
LaTeX runs with stat information about the file and filesystems.
Diffing the strace outputs (stripped of everything but stat calls,
with pointer values scrubbed to make the diff work), we see
xstat(2, "/opt/csw/share/texmf-dist/aliases", POINTER) = 0
fstat64(3, POINTER) = 0
fstat64(3, POINTER) = 0
-xstat(2, ".", POINTER) = 0
-xstat(2, "./test.ltx", POINTER) = 0
+xstat(2, ".", POINTER) Err#79 EOVERFLOW
fstat64(1, POINTER) = 0
fstat64(1, POINTER) = 0
i.e., in the successful run, we stat the current directory, then stat
the file, but in the failed run we stat the current directory, get
EOVERFLOW, and bail.
The "stat" command uses lstat64() rather than xstat(). (I'm assuming
xstat() is actually getting called behind the scenes by a library
function, since it's undocumented...) |