From owner-freebsd-current@FreeBSD.ORG Sat Aug 16 09:33:42 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4577D37B428 for ; Sat, 16 Aug 2003 09:33:38 -0700 (PDT) Received: from 21322530218.direct.eti.at (21322530218.direct.eti.at [213.225.30.218]) by mx1.FreeBSD.org (Postfix) with ESMTP id 647C244545 for ; Sat, 16 Aug 2003 06:21:22 -0700 (PDT) (envelope-from tilman@arved.de) Received: from huckfinn.arved.de (localhost [127.0.0.1]) h7GDLAeg080501; Sat, 16 Aug 2003 15:21:11 +0200 (CEST) (envelope-from tilman@arved.de) Received: (from tilman@localhost) by huckfinn.arved.de (8.12.9/8.12.6/Submit) id h7GDL9oK080500; Sat, 16 Aug 2003 15:21:09 +0200 (CEST) X-Authentication-Warning: huckfinn.arved.de: tilman set sender to tilman@arved.de using -f Date: Sat, 16 Aug 2003 15:21:09 +0200 From: Tilman Linneweh To: Tilman Linneweh Message-ID: <20030816132109.GA80431@huckfinn.arved.de> References: <1060957013.23643.15.camel@sauna.arved.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <1060957013.23643.15.camel@sauna.arved.de> User-Agent: Mutt/1.4.1i cc: freebsd-current@FreeBSD.org Subject: LOR tcp_input.c vs. tcp_usrreq.c (was: Re: 2 LORs on my NFS server.) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Aug 2003 16:33:43 -0000 * 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 to continue, or q 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)