Messages in this thread |  | | Date | Mon, 16 Jun 2008 14:13:55 -0400 | From | Jeff Layton <> | Subject | Re: [PATCH] knfsd: nfsd: Handle ERESTARTSYS from syscalls. |
| |
On Mon, 16 Jun 2008 12:54:46 -0400 Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
> On Mon, 2008-06-16 at 11:09 -0400, Chuck Lever wrote: > > > I think an error reply is much better than no reply in nearly every > > case. NFS3ERR_JUKEBOX/NFS4ERR_DELAY is an interesting idea, but > > something else again will probably be required for v4.1 with sessions. > > NFS3ERR_JUKEBOX/NFS4ERR_DELAY may be inappropriate if the nfs daemon has > already started handling the RPC call, since you may be interrupting a > non-idempotent operation. >
But if you drop the reply, the client will probably still end up retransmitting the request. It seems like a JUKEBOX/DELAY error is at least a defined error to the client instead of leaving it guessing. Either way, the client could still end up on the wrong side of a non-idempotent op.
Also, am I right that this should really only be happening if nfsd catches a SIGKILL? All other signals should be masked off when doing the local file operation. Or do we have a potential race if we catch a signal just after svc_recv returns but before the new sigmask is set and svc_process is called?
> The only complete solution to this problem is NFSv4.1 with persistent > sessions. >
That's probably the case, though we should probably try to do best-effort for earlier versions.
-- Jeff Layton <jlayton@redhat.com>
|  |