Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Oct 2002 23:51:41 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        current@FreeBSD.org
Subject:   NFS hang on rmdir(2) with 5.0-current client, server
Message-ID:  <Pine.NEB.3.96L.1021002234608.55209A-100000@fledge.watson.org>

next in thread | raw e-mail | index | archive | help

Running into an odd (and apparently recent) problem involving rmdir(2) and
NFS.  I have a diskless box started using pxeboot: NFS /, MFS /var, MFS
/tmp, recent 5.0-CURRENT.  Attempt to rmdir /usr/local (on NFS) results in
NFS hanging.  It appears to send out the RPC, but no response comes back
from the (also recent) FreeBSD 5.0 NFS server.  Here's the quicky on the
client:

crash1# which rmdir
/bin/rmdir
crash1# rmdir /usr/local
load: 0.04  cmd: rmdir 466 [sbwait] 0.00u 0.00s 0% 76k
~^B
Stopped at      siointr1+0xf4:  movl    $0,brk_state1.0
db> trace 466
mi_switch(c0baa8d8,1f4,c02eb8f0,c0baa840,3d4) at mi_switch+0x238
msleep(c1996eec,0,58,c04bdba0,1f4) at msleep+0x474
sbwait(c1996ed4,c0518e80,c0bac630,c0bac630,f4240) at sbwait+0x51
soreceive(c1996e88,0,c86a1aec,c86a1b38,0) at soreceive+0x306
nfs_receive(c1bcb800,c86a1b3c,c86a1b38,c199d000,c0e34844) at
nfs_receive+0x4c0
nfs_reply(c1bcb800,c18d7850,c0bb3400,c1bcb800,44) at nfs_reply+0x5e
nfs_request(c19d94a0,c0bb3d00,d,c0baa840,c1cdb280) at nfs_request+0x2dc
nfs_rmdir(c86a1c04,c04e8600,c19d94a0,c1bc8de0,c86a1c98) at nfs_rmdir+0x11a
VOP_RMDIR(c19d94a0,c1bc8de0,c86a1c98,c86a1c98,0) at VOP_RMDIR+0x33
kern_rmdir(c0baa840,bfbffd3e,0,c86a1d40,c044ff4e) at kern_rmdir+0x1be
rmdir(c0baa840,c86a1d10,c04dedc9,418,1) at rmdir+0x22
syscall(2f,2f,2f,0,0) at syscall+0x2be
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (137, FreeBSD ELF32, rmdir), eip = 0x804886f, esp =
0xbfbffbfc, ebp = 0xbfbffc20 ---
db> 

I can't do much debugging on the server just yet as it's actually the
development box and I don't have remote serial console access / debugger
access / etc on it.  It strikes me that either the client is sending an
invalid request that the server blocks, or the server is getting unhappy
about the request.  The server NFS processes seem to be idle, so at the
very least the server doesn't care:

    0   354     1  85 106  0  1104  776 select Is    ??    0:00.12 nfsd:
master
    0   356   354   0   4  0  1012  628 nfsd   I     ??    1:16.66 nfsd:
server
    0   357   354   0   4  0  1012  628 nfsd   I     ??    0:00.18 nfsd:
server
    0   358   354   0   4  0  1012  628 nfsd   I     ??    0:00.03 nfsd:
server
    0   359   354   0   4  0  1012  628 nfsd   I     ??    0:00.02 nfsd:
server

I've attached the tcpdump output from the server interface below, if
anyone is interested.  Has anyone else experienced this problem?

I believe / is mounted using NFSv3, and quite possibly "soft":

file:/home on /home (nfs)
file:/projects on /projects (nfs)

It looks like the client is basically hung waiting for an RPC response.
I'd be glad to provide more debugging information if someone can point me
in the right direction.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org      Network Associates Laboratories

23:46:09.588003 192.168.50.10.1260868882 > 192.168.50.1.2049: 152 lookup
[|nfs]
                         4500 00b4 12b2 0000 4011 822b c0a8 320a
                         c0a8 3201 03ff 0801 00a0 22d0 4b27 5512
                         0000 0000 0000 0002 0001 86a3 0000 0002
                         0000 0004 0000 0001 0000 0044 0000 0000
                         0000 0000 0000 0000 0000 0000 0000 000c
                         0000
23:46:09.588168 192.168.50.1.2049 > 192.168.50.10.1260868882: reply ok 128
lookup [|nfs]
                         4500 009c 7e3b 0000 4011 16ba c0a8 3201
                         c0a8 320a 0801 03ff 0088 15d3 4b27 5512
                         0000 0001 0000 0000 0000 0000 0000 0000
                         0000 0000 0000 0000 4f29 ba3b db0f a103
                         0c00 0000 3356 0a00 6e81 461d 0000 0000
                         0000
23:46:09.588675 192.168.50.10.1260868883 > 192.168.50.1.2049: 152 rmdir
[|nfs]
                         4500 00b4 12b3 0000 4011 822a c0a8 320a
                         c0a8 3201 03ff 0801 00a0 22c4 4b27 5513
                         0000 0000 0000 0002 0001 86a3 0000 0002
                         0000 000f 0000 0001 0000 0044 0000 0000
                         0000 0000 0000 0000 0000 0000 0000 000c
                         0000
23:46:10.592213 192.168.50.10.1260868883 > 192.168.50.1.2049: 152 rmdir
[|nfs]
                         4500 00b4 12b4 0000 4011 8229 c0a8 320a
                         c0a8 3201 03ff 0801 00a0 22c4 4b27 5513
                         0000 0000 0000 0002 0001 86a3 0000 0002
                         0000 000f 0000 0001 0000 0044 0000 0000
                         0000 0000 0000 0000 0000 0000 0000 000c
                         0000
23:46:12.602134 192.168.50.10.1260868883 > 192.168.50.1.2049: 152 rmdir
[|nfs]
                         4500 00b4 12b5 0000 4011 8228 c0a8 320a
                         c0a8 3201 03ff 0801 00a0 22c4 4b27 5513
                         0000 0000 0000 0002 0001 86a3 0000 0002
                         0000 000f 0000 0001 0000 0044 0000 0000
                         0000 0000 0000 0000 0000 0000 0000 000c
                         0000



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1021002234608.55209A-100000>