Bug 742907

Summary: autofs 5.0.5-14.19.1 does not mount nfs4 shares anymore
Product: [openSUSE] openSUSE 11.4 Reporter: Forgotten User cI3FYhfYTs <forgotten_cI3FYhfYTs>
Component: BasesystemAssignee: Leonardo Chiquitto <lchiquitto>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P2 - High    
Version: Factory   
Target Milestone: ---   
Hardware: All   
OS: openSUSE 11.4   
Whiteboard: maint:running:45114:moderate
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 744873    
Deadline: 2012-02-06   

Description Forgotten User cI3FYhfYTs 2012-01-23 16:49:43 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.
Comment 1 Dirk Mueller 2012-01-23 20:56:02 UTC
regression from swamp 42906
Comment 2 Swamp Workflow Management 2012-01-23 20:56:40 UTC
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
Comment 3 Leonardo Chiquitto 2012-01-23 21:13:34 UTC
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.
Comment 4 Forgotten User cI3FYhfYTs 2012-01-23 22:08:07 UTC
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
Comment 5 Leonardo Chiquitto 2012-01-24 21:36:14 UTC
> 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.
Comment 6 Forgotten User cI3FYhfYTs 2012-01-24 21:48:30 UTC
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
Comment 7 Leonardo Chiquitto 2012-01-24 22:14:44 UTC
> 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?
Comment 8 Forgotten User cI3FYhfYTs 2012-01-24 22:20:17 UTC
Negative, still fails.
Comment 9 Leonardo Chiquitto 2012-01-25 14:16:43 UTC
Could you please attach /proc/mounts from the machine that works, after the volume was mounted? Thanks.
Comment 10 Forgotten User cI3FYhfYTs 2012-01-25 14:43:11 UTC
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
Comment 11 Leonardo Chiquitto 2012-01-25 19:03:14 UTC
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.
Comment 12 Leonardo Chiquitto 2012-01-26 13:26:26 UTC
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
Comment 13 Forgotten User cI3FYhfYTs 2012-01-26 14:42:06 UTC
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.
Comment 14 Leonardo Chiquitto 2012-01-26 15:06:27 UTC
> 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 :(
Comment 15 Leonardo Chiquitto 2012-01-26 16:15:32 UTC
Please, could you capture the network traffic between the server and klang with both versions (14.17.1 and 14.19.1)?
Comment 16 Forgotten User cI3FYhfYTs 2012-01-26 19:51:09 UTC
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.
Comment 17 Leonardo Chiquitto 2012-02-02 19:59:45 UTC
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!
Comment 18 Forgotten User cI3FYhfYTs 2012-02-06 16:36:28 UTC
Works like a charm!
Thanks heaps for that.
Comment 19 Leonardo Chiquitto 2012-02-06 16:53:31 UTC
Cool, thanks for testing! I've submitted this to 11.4:Update:Test and I'm now waiting for it to be accepted.
Comment 20 Leonardo Chiquitto 2012-02-09 16:48:16 UTC
Now released in the updates repository (autofs-5.0.5-14.21.1).