Bugzilla – Bug 742907
autofs 5.0.5-14.19.1 does not mount nfs4 shares anymore
Last modified: 2012-02-09 16:48:16 UTC
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0a1) Gecko/20111226 Firefox/12.0a1 Updating the system (via zypper up) brought autofs 5.0.5-14.19.1 and nfs4 shares stopped working. Last known version to successfully mount nfs4 shares is 5.0.5-14.17.1 Reproducible: Always Steps to Reproduce: 1. install autofs-5.0.5-14.19.1 2. try mounting nfs4 shares via autofs Actual Results: No mount request is sent out. Expected Results: Mount request should have been sent and the share should have been mounted.
regression from swamp 42906
The SWAMPID for this issue is 45114. This issue was rated as moderate. Please submit fixed packages until 2012-02-06. Also create a patchinfo file using this link: https://swamp.suse.de/webswamp/wf/45114
Dirk, are you able to reproduce? It's working for me. Sebastian, please, could you set DEFAULT_LOGGING to "yes" in /etc/sysconfig/autofs, restart the automounter, reproduce the problem and attach the logs from /var/log/messages here? Also, I'd like to see the contents of /etc/sysconfig/autofs. Thanks.
verbose debugging gives: Jan 23 22:03:51 sang automount[1919]: attempting to mount entry /home/freundt Jan 23 22:03:51 sang automount[1919]: mount(nfs): no hosts available Jan 23 22:03:51 sang automount[1919]: failed to mount /home/freundt my auto.master: /home /etc/auto.home my auto.home: * -rw,fstype=nfs4 bridge.fresse.org:/home/& I should add here that bridge.fresse.org is an IPv6 node. my /etc/sysconfig/autofs: ## Path: System/File systems/Autofs ## Description: General global options. ## Type: string ## Default: "" ## ServiceReload: autofs # AUTOFS_OPTIONS="" ## Description: default mount options. ## Type: string ## Default: "" # # default mount options which are appended or replaced to # each map entry (see also APPEND_OPTIONS) LOCAL_OPTIONS="" ## Description: append or replace options ## Type: string ## Default: "yes" # # Determine whether LOCAL_OPTIONS are appended to map entry options # or if the map entry options replace the global options # (program default "yes", append options). APPEND_OPTIONS="yes" ## Description: use autofs miscellaneous device ## Type: string ## Default: "yes" # # Determine whether the autofs misc device (/dev/autofs) will be used # for routing ioctl commands. Requires kernel support (2.6.28 and newer) USE_MISC_DEVICE="yes" ## Description: Default map name for the master map. ## Type: string ## Default: "auto.master" # DEFAULT_MASTER_MAP_NAME="auto.master" ## Description: Set the default mount timeout (default 600). ## Type: integer(0:) ## Default: 600 # DEFAULT_TIMEOUT=600 ## Description: maps are browsable by default. ## Type: string ## Default: "yes" # DEFAULT_BROWSE_MODE="yes" ## Description: Set default log level. ## Type: string ## Default: "none" # # "none", "verbose" or "debug" # DEFAULT_LOGGING="verbose" ## Description: Define the default LDAP schema to use for lookups. ## Type: string ## Default: "auto.master" # # System default # DEFAULT_MAP_OBJECT_CLASS="nisMap" DEFAULT_ENTRY_OBJECT_CLASS="nisObject" DEFAULT_MAP_ATTRIBUTE="nisMapName" DEFAULT_ENTRY_ATTRIBUTE="cn" DEFAULT_VALUE_ATTRIBUTE="nisMapEntry" # # Other common LDAP nameing # #DEFAULT_MAP_OBJECT_CLASS="automountMap" #DEFAULT_ENTRY_OBJECT_CLASS="automount" #DEFAULT_MAP_ATTRIBUTE="ou" #DEFAULT_ENTRY_ATTRIBUTE="cn" #DEFAULT_VALUE_ATTRIBUTE="automountInformation" # #DEFAULT_MAP_OBJECT_CLASS="automountMap" #DEFAULT_ENTRY_OBJECT_CLASS="automount" #DEFAULT_MAP_ATTRIBUTE="automountMapName" #DEFAULT_ENTRY_ATTRIBUTE="automountKey" #DEFAULT_VALUE_ATTRIBUTE="automountInformation" ## Description: set the default location for the SASL authentication configuration file. ## Type: string ## Default: "/etc/autofs_ldap_auth.conf" # DEFAULT_AUTH_CONF_FILE="etc/autofs_ldap_auth.conf" ## Description: set the map cache hash table size. ## Type: integer ## Default: 1024 # # Should be a power of 2 with a ratio roughly between 1:10 and 1:20 # for each map. MAP_HASH_TABLE_SIZE=1024
> Sebastian, please, could you set DEFAULT_LOGGING to "yes" in Sorry, I meant "debug" and not "yes" above. I can reproduce the problem here, AutoFS doesn't seem to work with IPv6 servers. However, the original version from 11.4 (5.0.5-14.17.1) also doesn't work for me. This makes me wonder if it's the same problem. IIRC, to use IPv6 with AutoFS, it needs to be linked against libtirpc (and on 11.4 it isn't). Please, could you attach debug logs from the version that works and also from the version that fails? Thanks.
I guess I'm a div. root@klang:S0:~> uname -a Linux klang 2.6.37.6-0.11-default #1 SMP 2011-12-19 23:39:38 +0100 i686 i686 i386 GNU/Linux Whereas on a x86_64 it's broken with 5.0.5-14.17.1 too, so I guess you're using the 64b version as well. Here's what you asked for, working machine klang: Jan 24 21:42:21 klang automount[2047]: Starting automounter version 5.0.5, master map auto.master Jan 24 21:42:21 klang automount[2047]: using kernel protocol version 5.01 Jan 24 21:42:21 klang automount[2047]: lookup_nss_read_master: reading master files auto.master Jan 24 21:42:21 klang automount[2047]: parse_init: parse(sun): init gathered global options: (null) Jan 24 21:42:21 klang automount[2047]: lookup_read_master: lookup(file): read entry /home Jan 24 21:42:21 klang automount[2047]: master_do_mount: mounting /home Jan 24 21:42:21 klang automount[2047]: automount_path_to_fifo: fifo name /var/run/autofs.fifo-home Jan 24 21:42:21 klang automount[2047]: lookup_nss_read_map: reading map file /etc/auto.home Jan 24 21:42:21 klang automount[2047]: parse_init: parse(sun): init gathered global options: (null) Jan 24 21:42:21 klang automount[2047]: mounted indirect on /home with timeout 600, freq 150 seconds Jan 24 21:42:21 klang automount[2047]: st_ready: st_ready(): state = 0 path /home Jan 24 21:42:21 klang automount[2047]: ghosting enabled Jan 24 21:42:35 klang automount[2047]: handle_packet: type = 3 Jan 24 21:42:35 klang automount[2047]: handle_packet_missing_indirect: token 1, name freundt, request pid 2116 Jan 24 21:42:35 klang automount[2047]: attempting to mount entry /home/freundt Jan 24 21:42:35 klang automount[2047]: lookup_mount: lookup(file): looking up freundt Jan 24 21:42:35 klang automount[2047]: lookup_mount: lookup(file): freundt -> -rw,fstype=nfs4 bridge.fresse.org:/home/& Jan 24 21:42:35 klang automount[2047]: parse_mount: parse(sun): expanded entry: -rw,fstype=nfs4 bridge.fresse.org:/home/freundt Jan 24 21:42:35 klang automount[2047]: parse_mount: parse(sun): gathered options: rw,fstype=nfs4 Jan 24 21:42:35 klang automount[2047]: parse_mount: parse(sun): dequote("bridge.fresse.org:/home/freundt") -> bridge.fresse.org:/home/freundt Jan 24 21:42:35 klang automount[2047]: parse_mount: parse(sun): core of entry: options=rw,fstype=nfs4, loc=bridge.fresse.org:/home/freundt Jan 24 21:42:35 klang automount[2047]: sun_mount: parse(sun): mounting root /home, mountpoint freundt, what bridge.fresse.org:/home/freundt, fstype nfs4, options rw Jan 24 21:42:35 klang automount[2047]: mount_mount: mount(nfs): root=/home name=freundt what=bridge.fresse.org:/home/freundt, fstype=nfs4, options=rw Jan 24 21:42:35 klang automount[2047]: mount_mount: mount(nfs): nfs options="rw", nosymlink=0, ro=0 Jan 24 21:42:35 klang automount[2047]: mount_mount: mount(nfs): calling mkdir_path /home/freundt Jan 24 21:42:35 klang automount[2047]: mount_mount: mount(nfs): calling mount -t nfs4 -s -o rw bridge.fresse.org:/home/freundt /home/freundt Jan 24 21:42:41 klang automount[2047]: mount_mount: mount(nfs): mounted bridge.fresse.org:/home/freundt on /home/freundt Jan 24 21:42:41 klang automount[2047]: dev_ioctl_send_ready: token = 1 Jan 24 21:42:41 klang automount[2047]: mounted /home/freundt Jan 24 21:42:41 klang automount[2047]: st_readmap: state 1 path /home Jan 24 21:42:41 klang automount[2047]: re-reading map for /home Jan 24 21:42:41 klang automount[2047]: lookup_nss_read_map: reading map file /etc/auto.home Jan 24 21:42:41 klang automount[2047]: parse_init: parse(sun): init gathered global options: (null) Jan 24 21:42:41 klang automount[2047]: st_ready: st_ready(): state = 4 path /home Here's the non-working version, sang: Jan 24 21:42:04 sang automount[1912]: Starting automounter version 5.0.5, master map auto.master Jan 24 21:42:04 sang automount[1912]: using kernel protocol version 5.01 Jan 24 21:42:04 sang automount[1912]: lookup_nss_read_master: reading master files auto.master Jan 24 21:42:04 sang automount[1912]: parse_init: parse(sun): init gathered global options: (null) Jan 24 21:42:04 sang automount[1912]: lookup_read_master: lookup(file): read entry /home Jan 24 21:42:04 sang automount[1912]: master_do_mount: mounting /home Jan 24 21:42:04 sang automount[1912]: automount_path_to_fifo: fifo name /var/run/autofs.fifo-home Jan 24 21:42:04 sang automount[1912]: lookup_nss_read_map: reading map file /etc/auto.home Jan 24 21:42:04 sang automount[1912]: parse_init: parse(sun): init gathered global options: (null) Jan 24 21:42:04 sang automount[1912]: mounted indirect on /home with timeout 600, freq 150 seconds Jan 24 21:42:04 sang automount[1912]: st_ready: st_ready(): state = 0 path /home Jan 24 21:42:04 sang automount[1912]: ghosting enabled Jan 24 21:44:26 sang automount[1912]: handle_packet: type = 3 Jan 24 21:44:26 sang automount[1912]: handle_packet_missing_indirect: token 1, name freundt, request pid 2126 Jan 24 21:44:26 sang automount[1912]: attempting to mount entry /home/freundt Jan 24 21:44:26 sang automount[1912]: lookup_mount: lookup(file): looking up freundt Jan 24 21:44:26 sang automount[1912]: lookup_mount: lookup(file): freundt -> -rw,fstype=nfs4#011bridge.fresse.org:/home/& Jan 24 21:44:26 sang automount[1912]: parse_mount: parse(sun): expanded entry: -rw,fstype=nfs4#011bridge.fresse.org:/home/freundt Jan 24 21:44:26 sang automount[1912]: parse_mount: parse(sun): gathered options: rw,fstype=nfs4 Jan 24 21:44:26 sang automount[1912]: parse_mount: parse(sun): dequote("bridge.fresse.org:/home/freundt") -> bridge.fresse.org:/home/freundt Jan 24 21:44:26 sang automount[1912]: parse_mount: parse(sun): core of entry: options=rw,fstype=nfs4, loc=bridge.fresse.org:/home/freundt Jan 24 21:44:26 sang automount[1912]: sun_mount: parse(sun): mounting root /home, mountpoint freundt, what bridge.fresse.org:/home/freundt, fstype nfs4, options rw Jan 24 21:44:26 sang automount[1912]: mount_mount: mount(nfs): root=/home name=freundt what=bridge.fresse.org:/home/freundt, fstype=nfs4, options=rw Jan 24 21:44:26 sang automount[1912]: mount_mount: mount(nfs): nfs options="rw", nosymlink=0, ro=0 Jan 24 21:44:26 sang automount[1912]: mount(nfs): no hosts available Jan 24 21:44:26 sang automount[1912]: dev_ioctl_send_fail: token = 1 Jan 24 21:44:26 sang automount[1912]: failed to mount /home/freundt
> Jan 24 21:44:26 sang automount[1912]: lookup_mount: lookup(file): freundt -> > -rw,fstype=nfs4#011bridge.fresse.org:/home/& The TAB here ^^^ shouldn't cause any trouble, but since it's the only difference I could spot so far, could you replace it with a space and check if it still fails?
Negative, still fails.
Could you please attach /proc/mounts from the machine that works, after the volume was mounted? Thanks.
root@klang:S0:~> cat /proc/mounts rootfs / rootfs rw 0 0 devtmpfs /dev devtmpfs rw,relatime,size=120504k,nr_inodes=30126,mode=755 0 0 tmpfs /dev/shm tmpfs rw,relatime 0 0 /dev/sda2 / ext4 rw,relatime,user_xattr,acl,barrier=1,data=ordered 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0 rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0 /etc/auto.home /home autofs rw,relatime,fd=6,pgrp=2226,timeout=600,minproto=5,maxproto=5,indirect 0 0 bridge.fresse.org:/home/freundt /home/freundt nfs4 rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,port=0,timeo=600,retrans=2,sec=sys,clientaddr=2a01:198:5b7:200::13,minorversion=0,local_lock=none,addr=2a01:198:5b7:200::1 0 0
While we figure out what's needed to make this work on 11.4, you can use the packages available in the filesystems repository: http://download.opensuse.org/repositories/filesystems/openSUSE_11.4/ These should work.
I still can't understand how this works on klang :/ When I query the AAAA records from bridge.fresse.org on DNS, it returns two addresses: 2a01:198:5b7:200::1 and 2001:470:9141:200::1. Is it possible that the first works while the second doesn't? The AutoFS maintenance update released for 11.4 includes some patches that could have caused the behavior change: * use weight only for server selection * mount using address for DNS round robin host names
2a01:198:5b7:200::1 and 2001:470:9141:200::1 are the same machine, and they both work. Like I said, the 14.17.1 works on 32bit 11.4 but *NOT* on 64bit 11.4.
> Like I said, the 14.17.1 works on 32bit 11.4 but *NOT* on 64bit 11.4. Yes, I understood that. I even installed a 32bit 11.4 here to test and confirmed that both versions do not work :(
Please, could you capture the network traffic between the server and klang with both versions (14.17.1 and 14.19.1)?
I will, but I will have to reproduce a klang-like machine because klang is actually a production machine and can't be used for debugging.
Sebastian, I'm preparing the AutoFS update for openSUSE 11.4. This update will include several bug fixes from upstream and one important change: automount will be linked against libtirpc. This is necessary to fix this bug and to make AutoFS behave better on IPv6 environments. I'd appreciate if you could try the packages that are now available in: http://download.opensuse.org/repositories/home:/leonardocf:/branches:/openSUSE:/11.4:/Update:/Test/standard/ ... and report whether it works well on your environment. Thanks!
Works like a charm! Thanks heaps for that.
Cool, thanks for testing! I've submitted this to 11.4:Update:Test and I'm now waiting for it to be accepted.
Now released in the updates repository (autofs-5.0.5-14.21.1).