Cannot list a particular directory through NFS with UDP

Jeremie Le Hen jeremie at le-hen.org
Sun Dec 13 23:07:01 UTC 2009


Hi,

__ Please Cc: me when replying as I'm not subscribed.  Thanks. __

My NFS server is running FreeBSD 8.0 from December 6th.  The client is a
NetBSD 5.0.  The directory exported is /data/repos on the server
(192.168.1.222) and is mounted on /mnt/repos on the client (192.168.1.1).

The problem exists in /data/repos/netbsd-cvsroot/pkgsrc when using NFS
over UDP: ls(1) stalls.  OTOH, for instance, listing another directory
or using NFS over TCP work flawlessly.

"ktruss ls" shows the following:
%  26964      1 ls       open(".", 0, 0)             = 3
%  26964      1 ls       fcntl(0x3, 0x2, 0x1)        = 0
%  26964      1 ls       fchdir(0x3)                 = 0
%  26964      1 ls       open(".", 0, 0)             = 5
%  26964      1 ls       open(".", 0x4, 0)           = 6
%  26964      1 ls       fcntl(0x6, 0x2, 0x1)        = 0
%  26964      1 ls       __fstat30(0x6, 0xbfbfdef0)  = 0
%  26964      1 ls       fstatvfs1(0x6, 0xbfbfdf54, 0x2) = 0
%  26964      1 ls       lseek(0x6, 0, 0, 0, 0x1)    = 0
                                             <---------- stalls here


Here is a trace from the stalling ls(1).  Please ask me if you need more
informations:

23:58:37.735792 IP (tos 0x0, ttl 64, id 48150, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288088 > 192.168.1.222.2049: 140 lookup [|nfs]
23:58:37.736635 IP (tos 0x0, ttl 64, id 62453, offset 0, flags [none], proto UDP (17), length 264) 192.168.1.222.2049 > 192.168.1.1.3819288088: reply ok 236 lookup [|nfs]
23:58:37.736727 IP (tos 0x0, ttl 64, id 48152, offset 0, flags [none], proto UDP (17), length 160) 192.168.1.1.3819288089 > 192.168.1.222.2049: 132 lookup [|nfs]
23:58:37.737232 IP (tos 0x0, ttl 64, id 18881, offset 0, flags [none], proto UDP (17), length 264) 192.168.1.222.2049 > 192.168.1.1.3819288089: reply ok 236 lookup [|nfs]
23:58:37.737411 IP (tos 0x0, ttl 64, id 48153, offset 0, flags [none], proto UDP (17), length 152) 192.168.1.1.3819288090 > 192.168.1.222.2049: 124 access [|nfs]
23:58:37.737783 IP (tos 0x0, ttl 64, id 57308, offset 0, flags [none], proto UDP (17), length 148) 192.168.1.222.2049 > 192.168.1.1.3819288090: reply ok 120 access attr: DIR 755 ids 0/0 [|nfs]
23:58:37.737927 IP (tos 0x0, ttl 64, id 48154, offset 0, flags [none], proto UDP (17), length 152) 192.168.1.1.3819288091 > 192.168.1.222.2049: 124 access [|nfs]
23:58:37.738412 IP (tos 0x0, ttl 64, id 21511, offset 0, flags [none], proto UDP (17), length 148) 192.168.1.222.2049 > 192.168.1.1.3819288091: reply ok 120 access attr: DIR 755 ids 0/0 [|nfs]
23:58:37.738477 IP (tos 0x0, ttl 64, id 48155, offset 0, flags [none], proto UDP (17), length 152) 192.168.1.1.3819288092 > 192.168.1.222.2049: 124 access [|nfs]
23:58:37.738914 IP (tos 0x0, ttl 64, id 33831, offset 0, flags [none], proto UDP (17), length 148) 192.168.1.222.2049 > 192.168.1.1.3819288092: reply ok 120 access attr: DIR 755 ids 0/0 [|nfs]
23:58:37.738990 IP (tos 0x0, ttl 64, id 48156, offset 0, flags [none], proto UDP (17), length 148) 192.168.1.1.3819288093 > 192.168.1.222.2049: 120 getattr [|nfs]
23:58:37.739377 IP (tos 0x0, ttl 64, id 26761, offset 0, flags [none], proto UDP (17), length 140) 192.168.1.222.2049 > 192.168.1.1.3819288093: reply ok 112 getattr DIR 755 ids 0/0 [|nfs]
23:58:37.740301 IP (tos 0x0, ttl 64, id 48158, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288094 > 192.168.1.222.2049: 140 readdir [|nfs]
23:58:37.764039 IP (tos 0x0, ttl 64, id 46859, offset 0, flags [+], proto UDP (17), length 1500) 192.168.1.222.2049 > 192.168.1.1.3819288094: reply ok 1472 readdir POST: DIR 755 ids 0/0 [|nfs]
23:58:37.764088 IP (tos 0x0, ttl 64, id 46859, offset 1480, flags [none], proto UDP (17), length 632) 192.168.1.222 > 192.168.1.1: udp
23:58:43.353108 IP (tos 0x0, ttl 64, id 48242, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288094 > 192.168.1.222.2049: 140 readdir [|nfs]
23:58:43.353640 IP (tos 0x0, ttl 64, id 35118, offset 0, flags [+], proto UDP (17), length 1500) 192.168.1.222.2049 > 192.168.1.1.3819288094: reply ok 1472 readdir POST: DIR 755 ids 0/0 [|nfs]
23:58:43.353687 IP (tos 0x0, ttl 64, id 35118, offset 1480, flags [none], proto UDP (17), length 632) 192.168.1.222 > 192.168.1.1: udp
23:58:54.587373 IP (tos 0x0, ttl 64, id 48349, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288094 > 192.168.1.222.2049: 140 readdir [|nfs]
23:58:54.587822 IP (tos 0x0, ttl 64, id 20689, offset 0, flags [+], proto UDP (17), length 1500) 192.168.1.222.2049 > 192.168.1.1.3819288094: reply ok 1472 readdir POST: DIR 755 ids 0/0 [|nfs]
23:58:54.587875 IP (tos 0x0, ttl 64, id 20689, offset 1480, flags [none], proto UDP (17), length 632) 192.168.1.222 > 192.168.1.1: udp
23:59:17.045978 IP (tos 0x0, ttl 64, id 48635, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288094 > 192.168.1.222.2049: 140 readdir [|nfs]
23:59:17.046483 IP (tos 0x0, ttl 64, id 53175, offset 0, flags [+], proto UDP (17), length 1500) 192.168.1.222.2049 > 192.168.1.1.3819288094: reply ok 1472 readdir POST: DIR 755 ids 0/0 [|nfs]
23:59:17.046538 IP (tos 0x0, ttl 64, id 53175, offset 1480, flags [none], proto UDP (17), length 632) 192.168.1.222 > 192.168.1.1: udp
00:00:01.953196 IP (tos 0x0, ttl 64, id 48966, offset 0, flags [none], proto UDP (17), length 168) 192.168.1.1.3819288094 > 192.168.1.222.2049: 140 readdir [|nfs]
00:00:01.953665 IP (tos 0x0, ttl 64, id 27028, offset 0, flags [+], proto UDP (17), length 1500) 192.168.1.222.2049 > 192.168.1.1.3819288094: reply ok 1472 readdir POST: DIR 755 ids 0/0 [|nfs]
00:00:01.953711 IP (tos 0x0, ttl 64, id 27028, offset 1480, flags [none], proto UDP (17), length 632) 192.168.1.222 > 192.168.1.1: udp


Regards,
-- 
Jeremie Le Hen


More information about the freebsd-stable mailing list