Re: RPC service registration timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Apr 4, 2008, at 1:28 PM, Trond Myklebust wrote:
On Fri, 2008-04-04 at 12:49 -0400, Talpey, Thomas wrote:
I think a second or two is way too short, but I do wonder if it can't
issue the unregisters asynchronously, and in parallel. Then it can
wait for them all, with a timeout maybe on the order of 10 to 15
seconds. A couple of retries while waiting sounds reasonable.

Making the wait interruptible seems dicey. Once the deregistration
is started, it seems like it should always make a best attempt to
complete it. Also, nfsd is usually started as a service, so there's
not likely to be a user.

I'd say that making the RPC call asynchronous, but doing an
interruptible wait on completion is probably the best solution.

Making the process entirely asynchronous can be problematic if you
decide to restart the service due to the potential for reordering
between the unregister/register RPC calls.

Another approach that doesn't address interruptibility, but does prevent waiting for a timeout if rpcbind isn't listening:

Use TCP instead of UDP to contact the local rpcbind daemon. If rpcbind isn't listening, the connection is refused immediately, and the RPC client can tell without waiting for a timeout.

We would have to create a new RPC_CLNT_CREATE_FOO flag that tells the client to fail an RPC immediately if the connection is refused (kind of like the old "one shot" flag). This shouldn't be the default behavior.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux