From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752463AbdLTGKT (ORCPT ); Wed, 20 Dec 2017 01:10:19 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:57201 "EHLO out3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751960AbdLTGKR (ORCPT ); Wed, 20 Dec 2017 01:10:17 -0500 X-ME-Sender: Subject: Re: [ANNOUNCE] autofs 5.1.2 release From: Ian Kent To: NeilBrown , autofs@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <1465960537.3164.1.camel@themaw.net> <876092krew.fsf@notabene.neil.brown.name> <5aee2303-d1c3-49fd-0ef9-362fb0256fd5@themaw.net> Message-ID: Date: Wed, 20 Dec 2017 14:10:12 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <5aee2303-d1c3-49fd-0ef9-362fb0256fd5@themaw.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 20/12/17 13:52, Ian Kent wrote: > On 20/12/17 11:29, NeilBrown wrote: >> >> Hi Ian, >> I've been looking at: >> >>> - add configuration option to use fqdn in mounts. >> >> (commit 9aeef772604) because using this new option causes a regression. >> If you are using the "replicated server" functionality, then >> use_hostname_for_mounts = yes >> completely disables it. > > Yes, that's not quite right. > > It disables the probe and proximity check for each distinct host > name used. > > Each of the entries in the list of hosts should still be > attempted and given that NFS ping is also now used in the NFS > mount module what's lost is the preferred ordering of the hosts > list. > >> >> This is caused by: >> >> diff --git a/modules/replicated.c b/modules/replicated.c >> index 32860d5fe245..8437f5f3d5b2 100644 >> --- a/modules/replicated.c >> +++ b/modules/replicated.c >> @@ -667,6 +667,12 @@ int prune_host_list(unsigned logopt, struct host **list, >> if (!*list) >> return 0; >> >> + /* If we're using the host name then there's no point probing >> + * avialability and respose time. >> + */ >> + if (defaults_use_hostname_for_mounts()) >> + return 1; >> + >> /* Use closest hosts to choose NFS version */ >> >> My question is: why what this particular change made. > > It was a while ago but there were complains about using the IP > address for mounts. It was requested to provide a way to prevent > that and force the use of the host name in mounts. > >> Why can't prune_host_list() be allowed to do it's thing >> when use_hostname_for_mounts is set. > > We could if each host name resolved to a single IP address. > > I'd need to check that use_hostname_for_mounts doesn't get > in the road but the host struct should have ->rr set to true > if it has multiple addresses so changing it to work the way > your recommending shouldn't be hard. I think there's a couple > of places that would need to be checked. > > If the host does resolve to multiple addresses the situation > is different. There's no way to stop the actual mount from > trying an IP address that's not responding and proximity > doesn't make sense either again because every time a lookup > is done on the host name (eg. at mount time) the next address > in its list will be returned which can and usually is different > from what would have been checked. > >> I understand that it would be pointless choosing between >> the different interfaces of a multi-homed host, but there is still value >> in choosing between multiple distinct hosts. >> >> What, if anything, might go wrong if I simply reverse this chunk of the >> patch? > > You'll get IP addresses in the logs in certain cases but that > should be all. > > It would probably be better to ensure that the checks are done > if the host name resolves to a single IP address. I think that should be "if the host names in the list each resolve to a single IP address", otherwise the round robin behavior would probably still get in the road. Ian