Re: [PATCH 1/2] mount: ECONNREFUSED is a permanent error

Chuck Lever
2009-11-16T18:17:05Z

On Nov 16, 2009, at 1:13 PM, Steve Dickson wrote:

>
>
> On 10/08/2009 01:37 PM, Chuck Lever wrote:
>> I had assumed early on that mount.nfs should retry a refused
>> connection.
>>
>> Apparently this is not the case. Legacy mount.nfs4 fails immediately
>> if the NFS server refuses the connection. Legacy mount.nfs and
>> text-based mount.nfs both fail immediately if the rpcbind service is
>> refusing connections.
>>
>> So, banish ECONNREFUSED returns from mount(2) to the domain of
>> permanent errors.
>>
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>>
>> utils/mount/stropts.c | 1 -
>> 1 files changed, 0 insertions(+), 1 deletions(-)
>>
>> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
>> index 069bdc1..0685caa 100644
>> --- a/utils/mount/stropts.c
>> +++ b/utils/mount/stropts.c
>> @@ -639,7 +639,6 @@ static int nfs_is_permanent_error(int error)
>> switch (error) {
>> case ESTALE:
>> case ETIMEDOUT:
>> - case ECONNREFUSED:
>> return 0; /* temporary */
>> default:
>> return 1; /* permanent */
>>
> I'm going to hold of on this one... I just think we should
> continue to try on ECONNREFUSED errors until the retry timer pops...

I thought we had agreed that ECONNREFUSED should be retried (ie this
particular patch was vetoed a while ago). Currently it is retried for
NFSv4, but not for NFSv2/3, and I have a patch that makes v2/v3 retry.

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com