Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Mar 2021 20:55:05 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Michael Tuexen <michael.tuexen@lurchi.franken.de>, "Scheffenegger, Richard" <Richard.Scheffenegger@netapp.com>
Cc:        Jason Breitman <jbreitman@tildenparkcapital.com>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   Re: NFS Mount Hangs
Message-ID:  <YQXPR0101MB0968D2362456D43DF528A7E9DD699@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <2890D243-AF46-43A4-A1AD-CB0C3481511D@lurchi.franken.de>
References:  <C643BB9C-6B61-4DAC-8CF9-CE04EA7292D0@tildenparkcapital.com> <3750001D-3F1C-4D9A-A9D9-98BCA6CA65A4@tildenparkcapital.com> <33693DE3-7FF8-4FAB-9A75-75576B88A566@tildenparkcapital.com> <YQXPR0101MB0968DC18E00833DE2969C636DD6A9@YQXPR0101MB0968.CANPRD01.PROD.OUTLOOK.COM> <SN4PR0601MB3728780CE9ADAB144B3B681486699@SN4PR0601MB3728.namprd06.prod.outlook.com>, <2890D243-AF46-43A4-A1AD-CB0C3481511D@lurchi.franken.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Michael Tuexen wrote:=0A=
>> On 18. Mar 2021, at 13:42, Scheffenegger, Richard <Richard.Scheffenegger=
@netapp.com> wrote:=0A=
>>=0A=
>>>> Output from the NFS Client when the issue occurs # netstat -an | grep=
=0A=
>>>> NFS.Server.IP.X=0A=
>>>> tcp        0      0 NFS.Client.IP.X:46896      NFS.Server.IP.X:2049   =
    FIN_WAIT2=0A=
>>> I'm no TCP guy. Hopefully others might know why the client would be stu=
ck in FIN_WAIT2 (I vaguely recall this means it is waiting for a fin/ack, b=
ut could be wrong?)=0A=
>>=0A=
>> When the client is in Fin-Wait2 this is the state you end up when the Cl=
ient side actively close() the tcp session, and then the server also ACKed =
the FIN.=0A=
Jason noted:=0A=
=0A=
>When the issue occurs, this is what I see on the NFS Server.=0A=
>tcp4       0      0 NFS.Server.IP.X.2049      NFS.Client.IP.X.51550     CL=
OSE_WAIT=0A=
>=0A=
>which corresponds to the state on the client side. The server received the=
 FIN=0A=
>from the client and acked it.=0A=
>The server is waiting for a close call to happen.=0A=
>So the question is: Is the server also closing the connection?=0A=
Did you mean to say "client closing the connection here?"=0A=
=0A=
The server should call soclose() { it never calls soshutdown() } when=0A=
soreceive(with MSG_WAIT) returns 0 bytes or an error that indicates=0A=
the socket is broken.=0A=
--> The soreceive() call is triggered by an upcall for the rcv side of the =
socket.=0A=
So, are you saying the FreeBSD NFS server did not call soclose() for this c=
ase?=0A=
=0A=
rick=0A=
=0A=
Best regards=0A=
Michael=0A=
> This will last for ~2 min or so, but is asynchronous. However, the same 4=
-tuple can not be reused during this time.=0A=
>=0A=
> With other words, from the socket / TCP, a properly executed active close=
() will end up in this state. (If the other side initiated the close, a pas=
sive close, will not end in this state)=0A=
>=0A=
>=0A=
> _______________________________________________=0A=
> freebsd-net@freebsd.org mailing list=0A=
> https://lists.freebsd.org/mailman/listinfo/freebsd-net=0A=
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"=0A=
=0A=
=0A=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YQXPR0101MB0968D2362456D43DF528A7E9DD699>