autofs 5.1.8 and TCP_REQUESTED

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

 



Hello.

With switching of autofs 5.1.7 -> 5.1.8 we faced the next issue.

My Linux distro (ALTLinux) has the policy for rpcbind which controls the
localhostness (localhost only by default). NFSv4 doesn't require
rpcbind. But with 606795ecfaa1ba45ab58fa20376213f6089e42e9
(https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git/commit/?id=606795ecfaa1ba45ab58fa20376213f6089e42e9)
it is mandatory and broken our users.

autoumount log:

Oct 28 08:23:24 client3.ipa.test automount[1243]: handle_packet: type = 3
Oct 28 08:23:24 client3.ipa.test automount[1243]:
handle_packet_missing_indirect: token 2, name athena, request pid 1297
Oct 28 08:23:24 client3.ipa.test automount[1243]: attempting to mount
entry /home/athena
Oct 28 08:23:24 client3.ipa.test automount[1243]: lookup_mount:
lookup(sss): looking up athena
Oct 28 08:23:24 client3.ipa.test automount[1243]: lookup_mount:
lookup(sss): athena -> -fstype=nfs4,rw,sec=krb5p
client1.ipa.test:/krbnfs_home/&
Oct 28 08:23:24 client3.ipa.test automount[1243]: parse_mount:
parse(sun): expanded entry: -fstype=nfs4,rw,sec=krb5p
client1.ipa.test:/krbnfs_home/athena
Oct 28 08:23:24 client3.ipa.test automount[1243]: parse_mount:
parse(sun): gathered options: fstype=nfs4,rw,sec=krb5p
Oct 28 08:23:24 client3.ipa.test automount[1243]: parse_mount:
parse(sun): dequote("client1.ipa.test:/krbnfs_home/athena") ->
client1.ipa.test:/krbnfs_home/athena
Oct 28 08:23:24 client3.ipa.test automount[1243]: parse_mount:
parse(sun): core of entry: options=fstype=nfs4,rw,sec=krb5p,
loc=client1.ipa.test:/krbnfs_home/athena
Oct 28 08:23:24 client3.ipa.test automount[1243]: sun_mount: parse(sun):
mounting root /home, mountpoint athena, what
client1.ipa.test:/krbnfs_home/athena, fstype nfs4, options rw,sec=krb5p
Oct 28 08:23:24 client3.ipa.test automount[1243]: mount(nfs): root=/home
name=athena what=client1.ipa.test:/krbnfs_home/athena, fstype=nfs4,
options=rw,sec=krb5p
Oct 28 08:23:24 client3.ipa.test automount[1243]: mount(nfs): nfs
options="rw,sec=krb5p", nobind=0, nosymlink=0, ro=0
Oct 28 08:23:24 client3.ipa.test automount[1243]: get_nfs_info: called
with host client1.ipa.test(172.18.0.2) proto 6 version 0x40
Oct 28 08:23:24 client3.ipa.test automount[1243]: get_portmap_client:
error 0x3 getting portmap client
Oct 28 08:23:24 client3.ipa.test automount[1243]: mount(nfs): no hosts
available

reason:

(gdb) bt
#0  get_vers_and_cost (logopt=logopt@entry=1,
host=host@entry=0x7f239c002240, version=version@entry=65,
port=port@entry=-1) at /usr/src/debug/autofs-5.1.8/modules/replicated.c:552
#1  0x00007f23a52a2b12 in prune_host_list (logopt=1,
list=list@entry=0x7f23a4a64590, vers=vers@entry=65, port=port@entry=-1)
at /usr/src/debug/autofs-5.1.8/modules/replicated.c:785
#2  0x00007f23a52a384e in mount_mount (ap=<optimized out>,
root=<optimized out>, name=<optimized out>, name_len=<optimized out>,
what=<optimized out>, fstype=<optimized out>, options=<optimized out>,
context=<optimized out>) at
/usr/src/debug/autofs-5.1.8/modules/mount_nfs.c:270
#3  0x00007f23a52c4e23 in sun_mount (ap=ap@entry=0x562be0d49120,
root=root@entry=0x562be0d49200 "/home", name=name@entry=0x7f23a4a668d0
"athena", namelen=namelen@entry=6, loc=loc@entry=0x7f239c001f80
"client1.ipa.test:/krbnfs_home/athena", loclen=loclen@entry=36,
options=0x7f23a4a656a0 "rw,sec=krb5p", ctxt=<optimized out>) at
/usr/src/debug/autofs-5.1.8/modules/parse_sun.c:713
#4  0x00007f23a52cd1cd in parse_mount (ap=0x562be0d49120,
name=0x7f23a4a668d0 "athena", name_len=6, mapent=<optimized out>,
context=0x7f2398000f80) at
/usr/src/debug/autofs-5.1.8/modules/parse_sun.c:1708
#5  0x00007f23a52f7f35 in lookup_mount (ap=0x562be0d49120,
name=<optimized out>, name_len=<optimized out>, context=0x7f2398000ef0)
at /usr/src/debug/autofs-5.1.8/modules/lookup_sss.c:1121
#6  0x0000562bdf8e7fe7 in do_lookup_mount (ap=ap@entry=0x562be0d49120,
map=0x7f2398000d80, name=name@entry=0x7f23a4a6bd90 "athena",
name_len=name_len@entry=6) at
/usr/src/debug/autofs-5.1.8/daemon/lookup.c:823
#7  0x0000562bdf8ee4ec in lookup_name_source_instance
(ap=ap@entry=0x562be0d49120, map=map@entry=0x562be0d49220,
type=type@entry=0x7f239c001ab0 "sss", name=name@entry=0x7f23a4a6bd90
"athena", name_len=name_len@entry=6) at
/usr/src/debug/autofs-5.1.8/daemon/lookup.c:993
#8  0x0000562bdf8ee5d8 in lookup_map_name
(this=this@entry=0x7f239c001a70, ap=ap@entry=0x562be0d49120,
map=map@entry=0x562be0d49220, name=name@entry=0x7f23a4a6bd90 "athena",
name_len=name_len@entry=6) at
/usr/src/debug/autofs-5.1.8/daemon/lookup.c:1044
#9  0x0000562bdf8ef5ae in lookup_nss_mount (ap=0x562be0d49120,
source=0x0, name=0x7f23a4a6bd90 "athena", name_len=6) at
/usr/src/debug/autofs-5.1.8/daemon/lookup.c:1241
#10 0x0000562bdf8e032b in do_mount_indirect (arg=<optimized out>) at
/usr/src/debug/autofs-5.1.8/daemon/indirect.c:756

(gdb) info args
logopt = 1
host = 0x7f239c002240
version = 65
port = -1

(gdb) p /t version
$22 = 1000001

so, version is (NFS4_REQUESTED | TCP_REQUESTED). It's ok.

vers is defined as (NFS_VERS_MASK | NFS4_VERS_MASK)
(gdb) p /t 0x0010 | 0x0020 | 0x0040
$21 = 1110000

with vers &= version; TCP_REQUESTED is filtered out and only
NFS4_REQUESTED stay in. Thus, get_nfs_info will never(?) receive
TCP_REQUESTED and this makes NFSv4 port setting unreachable:
 294                 if ((version & NFS4_REQUESTED) && (version &
TCP_REQUESTED))
 295                         rpc_info->port = NFS_PORT;



Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux Filesystem Development]     [Linux Ext4]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux