On Wed, Aug 28, 2019 at 03:12:26PM +0000, Rick Macklem wrote: > J. Bruce Fields wrote: > >On Wed, Aug 28, 2019 at 10:16:09AM -0400, Jeff Layton wrote: > >> For the most part, these sorts of errors tend to be rare. If it turns > >> out to be a problem we could consider moving the verifier into > >> svc_export or something? > > > >As Trond says, this isn't really a server implementation issue, it's a > >protocol issue. If a client detects when to resend writes by storing a > >single verifier per server, then returning different verifiers from > >writes to different exports will have it resending every time it writes > >to one export then another. > > Well, here's what RFC-1813 says about the write verifier: > This cookie must be consistent during a single instance > of the NFS version 3 protocol service and must be > unique between instances of the NFS version 3 protocol > server, where uncommitted data may be lost. > You could debate what "service" means in the above, but I'd say it isn't "per file". > > However, since there is no way for an NFSv3 client to know what a "server" is, > the FreeBSD client (and maybe the other *BSD, although I haven't been involved > in them for a long time) stores the write verifier "per mount". > --> So, for the FreeBSD client, it is at the granularity of what the NFSv3 client sees as > a single file system. (Typically a single file system on the server unless the knfsd > plays the game of coalescing multiple file systems by uniquifying the I-node#, etc.) Oh, well, that would be nice if we could at least count on per-filesystem. > It is conceivable that some other NFSv3 client might assume "same > server IP address --> same server" and store it "per server IP", but I > have no idea if any such client exists. Hm. --b.