public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: "Shirish Kalele" <kalele@veritas.com>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: Fw: NFSD over TCP: TCP broken?
Date: 17 Oct 2001 09:19:21 +0200	[thread overview]
Message-ID: <shsd73mlona.fsf@charged.uio.no> (raw)
In-Reply-To: <013601c156f9$e0a35310$3291b40a@fserv2000.net>
In-Reply-To: "Shirish Kalele"'s message of "Wed, 17 Oct 2001 03:52:55 -0700"

>>>>> " " == Shirish Kalele <kalele@veritas.com> writes:

    >> Hi,

    >> Looking at the network traces, it looks like the RPC records
    >> being sent
     > over
    >> TCP are inconsistent with the lengths specified in the record
    >> marker. This happens mainly when 3-4 requests arrive one after
    >> the other and you have
     > 3-4
    >> threads replying to these requests in parallel. It looks like
    >> TCP gets hopelessly confused and botches up the replies being
    >> sent. I point my
     > finger
    >> at TCP because tcp_sendmsg returns a valid length indicating
    >> that the
     > entire
    >> reply was accepted, but the tcp sequence numbers show that the
    >> RPC record sent on the wire wasn't equal to the length accepted
    >> by TCP. After a
     > while,
    >> the client realizes it's out of sync when it gets an invalid
    >> RPC record marker, and resets and reconnects. This repeats
    >> multiple times.

This is normal. Nobody has fixed the RPC server code. There are plenty
of possible sources of the above problem, but my main suspect is the
fact that the TCP reply code uses blocking socket operations (will
change once we actually go in for supporting TCP), but doesn't provide
any mechanism for preventing another thread from using the socket
while the original writer is sleeping.

Fix: Set up a semaphore in the struct svc_sock somewhere, and use it
to gate write acces to the socket...

Cheers,
  Trond

      reply	other threads:[~2001-10-17  7:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-17 10:52 Fw: NFSD over TCP: TCP broken? Shirish Kalele
2001-10-17  7:19 ` Trond Myklebust [this message]

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=shsd73mlona.fsf@charged.uio.no \
    --to=trond.myklebust@fys.uio.no \
    --cc=kalele@veritas.com \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox