This is the mail archive of the
glibc-bugs@sources.redhat.com
mailing list for the glibc project.
[Bug libc/353] New: getdents64 loops with Apple NFS
- From: "bnies at bluewin dot ch" <sourceware-bugzilla at sources dot redhat dot com>
- To: glibc-bugs at sources dot redhat dot com
- Date: 30 Aug 2004 07:04:29 -0000
- Subject: [Bug libc/353] New: getdents64 loops with Apple NFS
- Reply-to: sourceware-bugzilla at sources dot redhat dot com
Hi,
We're using an Xserve with RAID and OSX Server 10.3.5 as NFS server
for our mixed Solaris 8/9 and SuSE Linux 9.0 environment.
OS versions:
Darwin nfs-server.example.com 7.5.0 Darwin Kernel Version 7.5.0: Thu Aug 5
19:26:16 PDT 2004; root:xnu/xnu-517.7.21.obj~3/RELEASE_PPC Power Macintosh powerpc
Linux nfs-client.example.com 2.4.21-192-smp4G #1 SMP Wed Feb 18
19:27:48 UTC 2004 i686 i686 i386 GNU/Linux
The shares on the Xserve are mounted on the Linux client via NFS using
automount. The problems we have discovered are only when mounting from
the Xserve and not other NetApp, Solaris and Linux NFS servers. The
problems also exist on older SuSE releases and on RedHat 9.
1) In some directories ls -lR hangs forever. This is reproduceable but
not always in the same directory from the same Linux client. A strace
on the hanging ls process shows an endless loop with the system calls:
getdents64(), lstat64() and getxattr().
2) Sometimes a tar on a NFS share takes very long, grows in memory and
CPU usage and then aborts with the error message "memory exhausted". A
strace on the running tar process shows an endless loop with the
system call getdents64().
Sample strace on ls output:
getdents64(5, /* 3 entries */, 4096) = 128
lstat64("/share/dir/file1.txt", {st_mode=S_IFREG|0444, st_size=8550,
...}) = 0
getxattr("/share/dir/file1.txt", "system.posix_acl_access", (nil), 0)
= -1 EOPNOTSUPP (Operation not supported)
lstat64("/share/dir/file2.txt", {st_mode=S_IFREG|0444, st_size=6570,
...}) = 0
getxattr("/share/dir/file2.txt", "system.posix_acl_access", (nil), 0)
= -1 EOPNOTSUPP (Operation not supported)
lstat64("/share/dir/file3.txt", {st_mode=S_IFREG|0444, st_size=23411,
...}) = 0
getxattr("/share/dir/file3.txt", "system.posix_acl_access", (nil), 0)
= -1 EOPNOTSUPP (Operation not supported)
3) NFSv2 has a 2GB file size limit for reading/writing files. NFSv3
does not have that limit. Files larger thant 2GB appear in an ls
smaller than they are (original size modulo 2GB).
Problems 1) and 2) occur both on NFSv2 and NFSv3, mounted with TCP and
UDP. A temporary workaround is to create an additional file in the
directory where ls hangs.
The same error occurs on other Linux distributions.
See also bug reports on:
http://sourceforge.net/tracker/index.php?func=detail&aid=964204&group_id=14&atid=100014
http://discussions.info.apple.com/webx?13@178.cdZnadQmv3a.9@.689495bc/0
Thanks in advance for fixing.
Regards,
Bernd
--
Summary: getdents64 loops with Apple NFS
Product: glibc
Version: 2.3.2
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: gotom at debian dot or dot jp
ReportedBy: bnies at bluewin dot ch
CC: glibc-bugs at sources dot redhat dot com
http://sources.redhat.com/bugzilla/show_bug.cgi?id=353
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.