All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: NFS list <linux-nfs@vger.kernel.org>
Subject: Linux client misses lack of open-confirm?
Date: Fri, 21 Dec 2007 23:15:11 -0500	[thread overview]
Message-ID: <476C8F4F.7080100@garzik.org> (raw)

While debugging my NFS server, I may have caught a Linux client bug.

My server is currently buggy, in that, it never sets the 
OPEN4_RESULT_CONFIRM bit after an OPEN with a new owner.  Shockingly, I 
can pass ~530 pynfs tests, fsx-linux [Linux v4 client], and build a 
kernel [Linux v4 client] even with such brokenness.  ;-)

Anyway, the Linux NFSv4 client (2.6.24-rc6) seems quite happy with this 
state of affairs, right until CLOSE time, when it passes "seqid + 2" to 
my server rather than the expected "seqid + 1".

Though I am quite happy that Linux managed to workaround my stupid 
server and store data successfully _anyway_, I thought it was worth 
commenting.  I was assuming either

	a) Linux would notice the lack of OPEN4_RESULT_CONFIRM and
	   complain accordingly, or,

	b) Linux would generate a correct seqid, taking into account
	   the fact that it did not issue OPEN_CONFIRM.

As you can see from the wireshark-0.99.7-2.fc8 binary dump at

	http://gtf.org/garzik/misc/dump.bz2 (33k compressed)

we see many examples of

	C:	OPEN	(seqid == 0)
	S:	NFS4_OK

	C:	[perhaps some intervening READ or WRITE or *ATTR]
	S:	[replies as expected]

	C:	CLOSE	(seqid == 2)
	S:	NFS4ERR_BAD_SEQID

If you feel this behavior is fine given a broken server, that's cool... 
  I just figured I would post in case somebody cared about this data point.

	Jeff


P.S.  I really really hate stateid/seqids at this point.  RFC 
nonwithstanding, they are basically undocumented.  I am reduced to 
poking through NFSv4 WG archives and Linux kernel code to find out what 
my server should be doing.  pynfs is no help here, either.

             reply	other threads:[~2007-12-22  4:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-22  4:15 Jeff Garzik [this message]
2007-12-22 15:27 ` Linux client misses lack of open-confirm? Trond Myklebust
     [not found]   ` <1198337249.7741.52.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2007-12-23  2:05     ` Jeff Garzik

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=476C8F4F.7080100@garzik.org \
    --to=jeff@garzik.org \
    --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.