[OpenAFS] vos tool ignoring loopback names with 1.8 can make local
administration difficult
Ian Wienand
iwienand@redhat.com
Mon, 18 Jan 2021 13:59:20 +1100
Hello,
In the process of updating from 1.6 -> 1.8 I noticed it became
impossible to query the server locally using the usual incarnations
you would think to try; e.g.
root@afs01:/afs/openstack.org# vos partinfo -localauth -server localhost
vos: server 'localhost' not found in host table
root@afs01:/afs/openstack.org# vos partinfo -localauth -server 127.0.0.1
vos: server '127.0.0.1' not found in host table
root@afs01:/afs/openstack.org# vos partinfo -localauth -server afs01.ord.openstack.org
vos: server 'afs01.ord.openstack.org' not found in host table
root@afs01:/afs/openstack.org# vos partinfo -localauth -server afs01
vos: server 'afs01' not found in host table
It seems this is definitely the intention of GetServer [1] to filter
local addresses; I do realise this is rather ridiculous ancient
history as it seemed to come in with [2], but that only seemed to come
in with 1.8.
In this case, the /etc/hosts is setup in the standard manner
root@afs01:/afs/openstack.org# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 afs01.ord.openstack.org afs01
So any incarnation of gethostbyname() is going to return the loopback
address and get filtered out, stopping the query.
I'm not always on a host with AFS tools setup so I'm fairly used to
jumping on the servers to query them as part of admin.
I see that this needs to be careful adding servers, etc. where we
don't want the volume db having entries for 127.*. But is this
filtering a little over-zealous for the query type commands (partinfo,
status, listvol, etc.)?
At a minimum I could look at making the error more specific when it
filters out the addresses if that seems valuable? Something like "no
non-loopback addresses found" would at least be much clearer.
-i
[1] http://git.openafs.org/?p=openafs.git;a=blob;f=src/volser/vos.c;h=1a3b71217c3a4e50ac681c0e924b5f811416fecf;hb=refs/heads/master#l231
[2] http://git.openafs.org/?p=openafs.git;a=commit;h=0125d8c911faf0706667a1733fc086adae6decce