won't mount NFS mounts with space in the name

Bug #663672 reported by Tim White
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
autofs5 (Ubuntu)
Triaged
Medium
Unassigned

Bug Description

Binary package hint: autofs5

Using the auto.net file to mount NFS mounts on the local network.
One of the machines (a NAS) has a number of similarly named exports with spaces in the name. autonfs appears to only see the name upto the first space.
The awk script in /etc/auto.net that parses the output of showmount doesn't consider that there may be spaces in the export name.

For example, the Network Recycle Bin's
$ showmount -e korby
Export list for korby:
/Qweb
/Qusb
/Qrecordings
/Qmultimedia
/Qdownload
/Public
/Photos
/Network Recycle Bin 4
/Network Recycle Bin 3
/Network Recycle Bin 1
/Media
/Documents
/DVD_rip

Turns into

$ /etc/auto.net korby
-fstype=nfs,hard,intr,nodev,nosuid \
 /DVD_rip korby:/DVD_rip \
 /Documents korby:/Documents \
 /Media korby:/Media \
 /Network korby:/Network \
 /Network korby:/Network \
 /Network korby:/Network \
 /Photos korby:/Photos \
 /Public korby:/Public \
 /Qdownload korby:/Qdownload \
 /Qmultimedia korby:/Qmultimedia \
 /Qrecordings korby:/Qrecordings \
 /Qusb korby:/Qusb \
 /Qweb korby:/Qweb

This prevents autofs from mounting any of the korby shares as it finds a duplicate mount (let alone, the mount it thinks it's a duplicate of is invalid as well).

Oct 20 14:50:49 sara-linux automount[21712]: attempting to mount entry /net/korby
Oct 20 14:50:49 sara-linux automount[21712]: lookup_mount: lookup(program): looking up korby
Oct 20 14:50:49 sara-linux automount[21712]: lookup_mount: lookup(program): korby -> -fstype=nfs,hard,intr,nodev,nosuid #011/DVD_rip korby:/DVD_rip #011/Documents korby:/Documents #011/Media korby:/Media #011/Network korby:/Network #011/Network korby:/Network #011/Network korby:/Network #011/Photos korby:/Photos #011/Public korby:/Public #011/Qdownload korby:/Qdownload #011/Qmultimedia korby:/Qmultimedia #011/Qrecordings korby:/Qrecordings #011/Qusb korby:/Qusb #011/Qweb korby:/Qweb
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): expanded entry: -fstype=nfs,hard,intr,nodev,nosuid #011/DVD_rip korby:/DVD_rip #011/Documents korby:/Documents #011/Media korby:/Media #011/Network korby:/Network #011/Network korby:/Network #011/Network korby:/Network #011/Photos korby:/Photos #011/Public korby:/Public #011/Qdownload korby:/Qdownload #011/Qmultimedia korby:/Qmultimedia #011/Qrecordings korby:/Qrecordings #011/Qusb korby:/Qusb #011/Qweb korby:/Qweb
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): dequote("/DVD_rip") -> /DVD_rip
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): dequote("korby:/DVD_rip") -> korby:/DVD_rip
Oct 20 14:50:49 sara-linux automount[21712]: add_offset_entry: parse(sun): added multi-mount offset /DVD_rip -> -fstype=nfs,hard,intr,nodev,nosuid korby:/DVD_rip
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): dequote("/Documents") -> /Documents
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): dequote("korby:/Documents") -> korby:/Documents
Oct 20 14:50:49 sara-linux automount[21712]: add_offset_entry: parse(sun): added multi-mount offset /Documents -> -fstype=nfs,hard,intr,nodev,nosuid korby:/Documents
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): dequote("/Media") -> /Media
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): dequote("korby:/Media") -> korby:/Media
Oct 20 14:50:49 sara-linux automount[21712]: add_offset_entry: parse(sun): added multi-mount offset /Media -> -fstype=nfs,hard,intr,nodev,nosuid korby:/Media
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): dequote("/Network") -> /Network
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): dequote("korby:/Network") -> korby:/Network
Oct 20 14:50:49 sara-linux automount[21712]: add_offset_entry: parse(sun): added multi-mount offset /Network -> -fstype=nfs,hard,intr,nodev,nosuid korby:/Network
Oct 20 14:50:49 sara-linux automount[21712]: parse_mount: parse(sun): dequote("/Network") -> /Network
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): gathered options: fstype=nfs,hard,intr,nodev,nosuid
Oct 20 14:50:49 sara-linux automount[21712]: parse_mapent: parse(sun): dequote("korby:/Network") -> korby:/Network
Oct 20 14:50:49 sara-linux automount[21712]: parse(sun): syntax error or duplicate offset /Network -> korby:/Network
Oct 20 14:50:49 sara-linux automount[21712]: parse(sun): error adding multi-mount
Oct 20 14:50:49 sara-linux automount[21712]: cache_delete_offset_list: deleting offset key /net/korby/DVD_rip
Oct 20 14:50:49 sara-linux automount[21712]: cache_delete_offset_list: deleting offset key /net/korby/Documents
Oct 20 14:50:49 sara-linux automount[21712]: cache_delete_offset_list: deleting offset key /net/korby/Media
Oct 20 14:50:49 sara-linux automount[21712]: cache_delete_offset_list: deleting offset key /net/korby/Network
Oct 20 14:50:49 sara-linux automount[21712]: dev_ioctl_send_fail: token = 55
Oct 20 14:50:49 sara-linux automount[21712]: failed to mount /net/korby

I will attempt to rewrite the awk to consider the spaces.

ProblemType: BugDistroRelease: Ubuntu 10.04
Package: autofs5 5.0.5-0ubuntu2
ProcVersionSignature: Ubuntu 2.6.35-22.33-generic 2.6.35.4
Uname: Linux 2.6.35-22-generic x86_64
NonfreeKernelModules: nvidia
Architecture: amd64
Date: Wed Oct 20 14:43:14 2010InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
ProcEnviron:
 PATH=(custom, user)
 LANG=en_AU.utf8
 SHELL=/bin/bashSourcePackage: autofs5
---
Architecture: amd64DistroRelease: Ubuntu 10.04InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
NonfreeKernelModules: nvidia
Package: autofs5 5.0.5-0ubuntu2
PackageArchitecture: amd64
ProcEnviron:
 PATH=(custom, user)
 LANG=en_AU.utf8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.35-22.33-generic 2.6.35.4Tags: lucid
Uname: Linux 2.6.35-22-generic x86_64
UnreportableReason: This is not a genuine Ubuntu package
UserGroups: adm admin cdrom dialout lpadmin plugdev proxy sambashare

TEST CASE:
Setup a lucid NFS server with the following exports (and associated directories):

/home
"/space filename"
"/space filename2"

Note that "" is important as space is used as a de-limited in /etc/exports

showmount -e <server> from a Lucid client with autofs5 installed shows:
Export list for <server>:
/space filename2 *
/space filename *
/home *

Setup autofs5 with the following line in /etc/auto.master on the client

/net /etc/auto.net

restart autofs

cd /net/<server> fails with 'No such file or directory message'

Removing one of the exports with a space from the NFS server (and restarting autofs on the client) partially fixes the issue; however the "space filename" export is not mounted correctly and is inaccessible:

total 0
drwxr-xr-x 2 root root 0 2010-10-22 09:11 space
drwxr-xr-x 2 root root 0 2010-10-22 09:11 home

Revision history for this message
Tim White (timwhite88) wrote :
Revision history for this message
Tim White (timwhite88) wrote :

NB: autofs5 is from Maverick as the machine is being updated slowly to maverick. (2G phone connection to internet)

Revision history for this message
Tim White (timwhite88) wrote :

From my poking around, it appears the bug will be in both this package, and nfs-common.
showmount's output doesn't allow for parsing as it uses spaces to separate the fields (exportname and the ipaddress of who can mount it). Ideally it needs to use a : between the fields not whitespace.
If showmount is modified, then auto.net will also need to be modified. Maybe another switch can be added to showmount that outputs parsable output. e.g.

$ showmount -e ubuntu
Export list for ubuntu:
/mnt/DVD_rip 192.168.8.0/16

becomes

$ showmount -m -e ubuntu
Export list for ubuntu:
/mnt/DVD_rip:192.168.8.0/16

and the korby mount options become
$ showmount -e korby
Export list for korby:
/Qweb:
/Qusb:
/Qrecordings:
/Qmultimedia;
/Qdownload:
/Public:
/Photos:
/Network Recycle Bin 4:
/Network Recycle Bin 3:
/Network Recycle Bin 1:
/Media:
/Documents:
/DVD_rip:

As you can see, the output of showmount varies depending on the server. Korby doesn't give the second field that shows what ip's can mount it. Below is the output of a WD MyBook World Edition II, which doesn't even give consistent output!

$ showmount -e max
Export list for max:
/DataVolume/Photos *
/DataVolume/Public *
/DataVolume/Download *
/ExtendVolume/Media (everyone)

Revision history for this message
James Page (james-page) wrote :

Hi Tim

Thank you for taking the time to report this bug and helping to make Ubuntu better. Please execute the following command, as it will automatically gather debugging information, in a terminal:

apport-collect 663672

When reporting bugs in the future please use apport, using 'ubuntu-bug' and the name of the package affected. You can learn more about this functionality at https://wiki.ubuntu.com/ReportingBugs.

It would also be really helpful if you could attach your autofs configuration files to this bug report; /etc/auto.master would be a great start with any other files that you may have configured as part of your set-up.

Thanks

Changed in autofs5 (Ubuntu):
status: New → Incomplete
Revision history for this message
Tim White (timwhite88) wrote : Dependencies.txt

apport information

tags: added: apport-collected
description: updated
Revision history for this message
Tim White (timwhite88) wrote :

/etc/auto.master

Revision history for this message
Tim White (timwhite88) wrote :

Original auto.net that is packaged with ubuntu. This file fails when NFS share has spaces in them.

Revision history for this message
Tim White (timwhite88) wrote :

A workaround (certainly not a solution) is to put a "grep -v" in the pipeline between the SHOWMOUNT and the awk that prints it in the expected format for autofs. Using this, I was able to filter out the 3 mounts with spaces in them so that I can continue using autofs. A proper solution appears to be modifying showmount to change the output format for when it is going to be parsed by a script.

James Page (james-page)
description: updated
Changed in autofs5 (Ubuntu):
status: Incomplete → Confirmed
importance: Undecided → Medium
status: Confirmed → Triaged
Chuck Short (zulcss)
Changed in autofs5 (Ubuntu):
status: Triaged → In Progress
tags: added: testcase
Changed in autofs5 (Ubuntu):
status: In Progress → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.