Date: Sat, 16 Aug 2003 15:21:09 +0200 From: Tilman Linneweh <tilman@arved.de> To: Tilman Linneweh <tilman@arved.de> Cc: freebsd-current@FreeBSD.org Subject: LOR tcp_input.c vs. tcp_usrreq.c (was: Re: 2 LORs on my NFS server.) Message-ID: <20030816132109.GA80431@huckfinn.arved.de> In-Reply-To: <1060957013.23643.15.camel@sauna.arved.de> References: <1060957013.23643.15.camel@sauna.arved.de>
next in thread | previous in thread | raw e-mail | index | archive | help
* Tilman Linneweh [Fr, 15 Aug 2003 at 16:17 GMT]: >=20 > My CURRENT is already a bit old: >=20 > # uname -a > FreeBSD polly.arved.de 5.1-CURRENT FreeBSD 5.1-CURRENT #1: Sun Jul 20 > 01:00:14 CEST 2003 =20 > tilman@sauna.arved.de:/usr/obj/usr/src/CURRENT/sys/POLLY i386 I updated my CURRENT to=20 polly# uname -a FreeBSD polly.arved.de 5.1-CURRENT FreeBSD 5.1-CURRENT #1: Sat Aug 16 10:11:52 CEST 2003 =20 tilman@sauna.arved.de:/usr/obj/usr/source/CURRENT/sys/POLLY i386 and this LOR is reproducable.=20 =20 > This happend while the machine was NFS-serving around 3 clients with > normal udp NFS and a fourth. client tried to mount something via > mount_nfs -T -a 2 The problem is the client with TCP mounts. I tried this time with a single NetBSD client that does a TCP mount and cd'd to the mounted directory. lock order reversal 1st 0xc1a17278 inp (inp) @ /usr/source/CURRENT/sys/netinet/tcp_input.c:654 2nd 0xc046bd6c tcp (tcp) @ /usr/source/CURRENT/sys/netinet/tcp_usrreq.c:621 Stack backtrace: backtrace(1,0,ffffffff,c0445068,c04451d0) at backtrace+0x12 witness_lock(c046bd6c,8,c03c334c,26d,0) at witness_lock+0x55e _mtx_lock_flags(c046bd6c,0,c03c334c,26d) at _mtx_lock_flags+0x7d tcp_usr_rcvd(c1ce8800,80) at tcp_usr_rcvd+0x1b soreceive(c1ce8800,c891ab1c,c891ab28,c891ab20,0) at soreceive+0x815 nfsrv_rcv(c1ce8800,c1a70780,4) at nfsrv_rcv+0x75 sowakeup(c1ce8800,c1ce884c) at sowakeup+0x7f tcp_input(c0b9ac00,14) at tcp_input+0x11f6 ip_input(c0b9ac00) at ip_input+0x7c8 swi_net(0) at swi_net+0xe6 ithread_loop(c0b87180,c891ad48,c0b87180,c0221660,0) at ithread_loop+0x11c fork_exit(c0221660,c0b87180,c891ad48) at fork_exit+0xab fork_trampoline() at fork_trampoline+0x8 --- trap 0x1, eip =3D 0, esp =3D 0xc891ad7c, ebp =3D 0 --- Debugger("witness_lock") Stopped at Debugger+0x45: xchgl %ebx,in_Debugger.0 #8 0xc0251271 in witness_lock (lock=3D0xc046bd6c, flags=3D8, file=3D0xc03c334c "/usr/source/CURRENT/sys/netinet/tcp_usrreq.c", line= =3D621) at /usr/source/CURRENT/sys/kern/subr_witness.c:838 #9 0xc0229a7d in _mtx_lock_flags (m=3D0xc046bd6c, opts=3D0, ---Type <return> to continue, or q <return> to quit--- file=3D0xc03c334c "/usr/source/CURRENT/sys/netinet/tcp_usrreq.c", line= =3D621) at /usr/source/CURRENT/sys/kern/kern_mutex.c:336 #10 0xc02b951b in tcp_usr_rcvd (so=3D0x0, flags=3D128) at /usr/source/CURRENT/sys/netinet/tcp_usrreq.c:621 #11 0xc0266155 in soreceive (so=3D0xc1ce8800, psa=3D0xc891ab1c, uio=3D0xc89= 1ab28, mp0=3D0xc891ab20, controlp=3D0x0, flagsp=3D0xc891ab24) at /usr/source/CURRENT/sys/kern/uipc_socket.c:1087 #12 0xc1a3efb5 in nfsrv_rcv (so=3D0xc1ce8800, arg=3D0xc1a70780, waitflag=3D= 4) at /usr/source/CURRENT/sys/nfsserver/nfs_srvsock.c:445 #13 0xc026783f in sowakeup (so=3D0xc1ce8800, sb=3D0xc1ce884c) at /usr/source/CURRENT/sys/kern/uipc_socket2.c:320 #14 0xc02b1336 in tcp_input (m=3D0xc0b9ac00, off0=3D20) at /usr/source/CURRENT/sys/netinet/tcp_input.c:1129 #15 0xc02abe08 in ip_input (m=3D0xc0b9ac00) at /usr/source/CURRENT/sys/netinet/ip_input.c:950 #16 0xc0293b06 in swi_net (dummy=3D0x0)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030816132109.GA80431>