From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Chuck Lever <chuck.lever@oracle.com>,
linux-nfs <linux-nfs@vger.kernel.org>
Subject: Re: unexpected NFS timeouts, related to sync/async soft mounts over TCP
Date: Fri, 11 Nov 2011 10:31:42 +0000 [thread overview]
Message-ID: <4EBCF98E.6050101@citrix.com> (raw)
In-Reply-To: <1320957784.11956.16.camel@lade.trondhjem.org>
On 10/11/11 20:43, Trond Myklebust wrote:
> On Thu, 2011-11-10 at 15:52 +0000, Andrew Cooper wrote:
>> On 10/11/11 15:29, Chuck Lever wrote:
>>> On Nov 10, 2011, at 6:15 AM, Andrew Cooper wrote:
>>>
>>>> On 09/11/11 22:36, Chuck Lever wrote:
>>>>> On Nov 9, 2011, at 1:38 PM, Andrew Cooper wrote:
>> Sorry. I am not sure I was clear. An EIO does not present itself with
>> a hard mount, but a TCP FIN is still injected into the stream by the
>> client, causing 15 seconds of deadlock, eventually fixed by sending a
>> RST and restarting with a new TCP stream. At this point, softmounts
>> throw an EIO while hardmounts restart and continue successfully.
>>
>> My problem is not the EIO on softmount or lack of EIO for hardmout, but
>> the fact that the client sees fit to try and close the TCP stream while
>> an apparently otherwise healthy NFS session is ongoing.
> The client will attempt to close the TCP connection on any RPC level
> error. That can happen, e.g., if the server sends a faulty RPC/TCP
> record fragment header or some other garbage data.
>
> I'm assuming that you've checked that the TCP parameters are set to sane
> values for a 10GigE connection (i.e. tcp_timestamps is on) so that there
> is no corruption happening at that level?
>
> Cheers
> Trond
I have a TCPdump/wireshark analysis of the entire packet stream (4GiB).
I cant see any RPC level errors (rpc.replystat != 0 yields no matches).
What specifically would I be looking for? Wireshark seems not to have
any problem decoding any of the RPC packets, so I hope that indicates no
RPC level corruption.
There is one case where the server sends a double write reply for the
same write, with different length fields. However, this is a good 20
seconds before the FIN is sent, so I was hoping that it was unrelated.
Might it not be?
As for TCP timestamps; I have a Timestamp option in each TCP packet.
Nothing appears corrupted. What would I be looking for with corrupted
timestamps?
Thanks,
--
Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
T: +44 (0)1223 225 900, http://www.citrix.com
next prev parent reply other threads:[~2011-11-11 10:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-09 18:38 unexpected NFS timeouts, related to sync/async soft mounts over TCP Andrew Cooper
2011-11-09 22:36 ` Chuck Lever
2011-11-10 11:15 ` Andrew Cooper
2011-11-10 15:29 ` Chuck Lever
2011-11-10 15:52 ` Andrew Cooper
2011-11-10 20:43 ` Trond Myklebust
2011-11-11 10:31 ` Andrew Cooper [this message]
2011-11-11 12:52 ` Jim Rees
2011-11-11 22:38 ` Trond Myklebust
2011-11-14 13:16 ` Andrew Cooper
2011-11-15 14:36 ` Andrew Cooper
2011-11-16 14:51 ` Andrew Cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EBCF98E.6050101@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Trond.Myklebust@netapp.com \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.