All of lore.kernel.org
 help / color / mirror / Atom feed
* nested automounts: bind and nfs
@ 2007-10-01 14:08 Lukas Kolbe
  2007-10-01 14:17 ` Lukas Kolbe
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-01 14:08 UTC (permalink / raw)
  To: autofs

Hi!

I'm having the problem that was described last year on this list:
http://osdir.com/ml/linux.kernel.autofs/2006-08/msg00040.html

Given the following mount map:

eclipse-3.1 \
  /bin          -rw,nosuid,grpid          fileserver:/volumes/vol1/eclipse-3.1/bin.linx86 \

eclipse \
  /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin \

We can't access /vol/eclipse/bin on the client if /vol/eclipse-3.1/bin
is not already mounted. The log says:


Oct  1 15:58:45 lahn automount[3329]: attempting to mount entry /vol/eclipse
Oct  1 15:58:45 lahn automount[3329]: mounted /vol/eclipse
Oct  1 15:58:45 lahn automount[3329]: attempting to mount entry /vol/eclipse/bin
Oct  1 15:58:45 lahn automount[3329]: mount(nfs): nfs: mount failure :/vol/eclipse-3.1/bin on /vol/eclipse/bin
Oct  1 15:58:45 lahn automount[3329]: failed to mount /vol/eclipse/bin

This fails, after a simple ls -la /vol/eclipse/bin.

Now we're doing ls -la /vol/eclipse-3.1/bin:

Oct  1 15:59:04 lahn automount[3329]: attempting to mount entry /vol/eclipse-3.1
Oct  1 15:59:04 lahn automount[3329]: mounted /vol/eclipse-3.1
Oct  1 15:59:04 lahn automount[3329]: attempting to mount entry /vol/eclipse-3.1/bin
Oct  1 15:59:04 lahn automount[3329]: mount(nfs): mounted fileserver:/volumes/vol1/eclipse-3.1/bin.linx86 on /vol/eclipse-3.1/bin
Oct  1 15:59:04 lahn automount[3329]: mounted /vol/eclipse-3.1/bin

And after that, ls -la /vol/eclipse/bin of course succeeds:

Oct  1 15:59:06 lahn automount[3329]: attempting to mount entry /vol/eclipse/bin
Oct  1 15:59:06 lahn automount[3329]: mounted /vol/eclipse/bin

Should I try the patch mentioned in the thread last year? I'm currently
using kernel 2.6.18 (from debian, we're bound to that one since it
supports xen), autofs-5.0.2 with all patches from kernel.org applied.

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-01 14:08 nested automounts: bind and nfs Lukas Kolbe
@ 2007-10-01 14:17 ` Lukas Kolbe
  2007-10-02  4:53 ` Ian Kent
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-01 14:17 UTC (permalink / raw)
  To: autofs

Hi again,

> Should I try the patch mentioned in the thread last year? I'm currently
> using kernel 2.6.18 (from debian, we're bound to that one since it
> supports xen), autofs-5.0.2 with all patches from kernel.org applied.

Correction: on this machine we're using Ubuntu's 2.6.20-15-generic
without Xen.
I don't think the patch from last year doesn't apply cleanly anymore ...
I get a lot of rejects.

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-01 14:08 nested automounts: bind and nfs Lukas Kolbe
  2007-10-01 14:17 ` Lukas Kolbe
@ 2007-10-02  4:53 ` Ian Kent
  2007-10-02 10:25   ` Lukas Kolbe
       [not found]   ` <1191321007.27255.12.camel@localhost>
  2007-10-02  5:03 ` Ian Kent
  2007-11-08 16:44 ` Lukas Kolbe
  3 siblings, 2 replies; 22+ messages in thread
From: Ian Kent @ 2007-10-02  4:53 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Mon, 2007-10-01 at 16:08 +0200, Lukas Kolbe wrote:
> Hi!
> 
> I'm having the problem that was described last year on this list:
> http://osdir.com/ml/linux.kernel.autofs/2006-08/msg00040.html
> 
> Given the following mount map:
> 
> eclipse-3.1 \
>   /bin          -rw,nosuid,grpid          fileserver:/volumes/vol1/eclipse-3.1/bin.linx86 \
> 
> eclipse \
>   /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin \
> 
> We can't access /vol/eclipse/bin on the client if /vol/eclipse-3.1/bin
> is not already mounted. The log says:
> 
> 
> Oct  1 15:58:45 lahn automount[3329]: attempting to mount entry /vol/eclipse
> Oct  1 15:58:45 lahn automount[3329]: mounted /vol/eclipse
> Oct  1 15:58:45 lahn automount[3329]: attempting to mount entry /vol/eclipse/bin
> Oct  1 15:58:45 lahn automount[3329]: mount(nfs): nfs: mount failure :/vol/eclipse-3.1/bin on /vol/eclipse/bin
> Oct  1 15:58:45 lahn automount[3329]: failed to mount /vol/eclipse/bin
> 
> This fails, after a simple ls -la /vol/eclipse/bin.
> 
> Now we're doing ls -la /vol/eclipse-3.1/bin:
> 
> Oct  1 15:59:04 lahn automount[3329]: attempting to mount entry /vol/eclipse-3.1
> Oct  1 15:59:04 lahn automount[3329]: mounted /vol/eclipse-3.1
> Oct  1 15:59:04 lahn automount[3329]: attempting to mount entry /vol/eclipse-3.1/bin
> Oct  1 15:59:04 lahn automount[3329]: mount(nfs): mounted fileserver:/volumes/vol1/eclipse-3.1/bin.linx86 on /vol/eclipse-3.1/bin
> Oct  1 15:59:04 lahn automount[3329]: mounted /vol/eclipse-3.1/bin
> 
> And after that, ls -la /vol/eclipse/bin of course succeeds:
> 
> Oct  1 15:59:06 lahn automount[3329]: attempting to mount entry /vol/eclipse/bin
> Oct  1 15:59:06 lahn automount[3329]: mounted /vol/eclipse/bin
> 
> Should I try the patch mentioned in the thread last year? I'm currently
> using kernel 2.6.18 (from debian, we're bound to that one since it
> supports xen), autofs-5.0.2 with all patches from kernel.org applied.

Can you post a debug log of this failure please.
Instructions to get what we need can be found at
http://people.redhat.com/jmoyer.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-01 14:08 nested automounts: bind and nfs Lukas Kolbe
  2007-10-01 14:17 ` Lukas Kolbe
  2007-10-02  4:53 ` Ian Kent
@ 2007-10-02  5:03 ` Ian Kent
  2007-11-08 16:44 ` Lukas Kolbe
  3 siblings, 0 replies; 22+ messages in thread
From: Ian Kent @ 2007-10-02  5:03 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Mon, 2007-10-01 at 16:08 +0200, Lukas Kolbe wrote:

> Should I try the patch mentioned in the thread last year? I'm currently
> using kernel 2.6.18 (from debian, we're bound to that one since it
> supports xen), autofs-5.0.2 with all patches from kernel.org applied.

Oh .. hang on, what configure options are you using?

If you don't use "--disable-mount-locking" with configure then the code
mentioned in the thread above can't be used because it would deadlock
the recursive mount.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-02  4:53 ` Ian Kent
@ 2007-10-02 10:25   ` Lukas Kolbe
       [not found]   ` <1191321007.27255.12.camel@localhost>
  1 sibling, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-02 10:25 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs


Am Dienstag, den 02.10.2007, 12:53 +0800 schrieb Ian Kent:
> On Mon, 2007-10-01 at 16:08 +0200, Lukas Kolbe wrote:
> > Hi!
> > 
> > I'm having the problem that was described last year on this list:
> > http://osdir.com/ml/linux.kernel.autofs/2006-08/msg00040.html
> > 
> > Given the following mount map:
> > 


> Can you post a debug log of this failure please.
> Instructions to get what we need can be found at
> http://people.redhat.com/jmoyer.

Okay:

/etc/auto.master:
/vol    /etc/auto_vol_linx_new

autofs5 version: 5.0.2-4, that is the same as in debian experimental
plus all patches from the kernel.org directory applied.

auto_vol_linx_new contains:

eclipse-3.1 \
   /bin          -rw,nosuid,grpid          fileserver:/volumes/vol1/eclipse-3.1/bin.linx86
eclipse \
   /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin

Which should bind-mount /vol/eclipse/bin from /vol/eclipse-3.1/bin, and
nfs-mount /vol/eclipse-3.1/bin from the fileserver.

lkolbe@lahn cgrep /etc/nsswitch.conf 
passwd:         compat
group:          compat
shadow:         compat
hosts:          files dns mdns
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
automount:      files nis
netgroup:       nis

lkolbe@lahn cgrep /etc/default/autofs
MASTER_MAP_NAME="/etc/auto.master"
TIMEOUT=300
BROWSE_MODE="no"
LOGGING="debug"

Trying to reproduce it:

lkolbe@lahn ls -la /vol/eclipse/bin/
ls: /vol/eclipse/bin/: No such file or directory

lkolbe@lahn ls -la /vol/eclipse-3.1/bin/
total 0
drwxrwsr-x 2 root eclipse 96 2007-09-12 14:34 .
dr-xr-xr-x 7 root root     0 2007-10-02 12:16 ..
-rw-r--r-- 1 root eclipse  0 2007-09-12 14:34 foo

lkolbe@lahn ls -la /vol/eclipse/bin/
ls: /vol/eclipse/bin/: No such file or directory

And a few seconds later:

lkolbe@lahn ls -la /vol/eclipse/bin/
total 0
drwxrwsr-x 2 root eclipse 96 2007-09-12 14:34 .
dr-xr-xr-x 8 root root     0 2007-10-02 12:16 ..
-rw-r--r-- 1 root eclipse  0 2007-09-12 14:34 foo

daemon.log comes in the next mail.

> Ian

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
       [not found]     ` <1191332917.26331.171.camel@raven.themaw.net>
@ 2007-10-02 14:40       ` Lukas Kolbe
  2007-10-10 14:15       ` Lukas Kolbe
  1 sibling, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-02 14:40 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Am Dienstag, den 02.10.2007, 21:48 +0800 schrieb Ian Kent:
> On Tue, 2007-10-02 at 12:30 +0200, Lukas Kolbe wrote:
> > Hi Ian!
> > 
> > > Can you post a debug log of this failure please.
> > > Instructions to get what we need can be found at
> > > http://people.redhat.com/jmoyer.
> > 
> > Here's the daemon.log (sorry for it being so big):
> > 
> > You see in 12:16:42 that it tries to mount the
> > not-yet-existant /vol/eclipse-3.1/bin to /vol/eclipse/bin. The patch
> > from august last year doesnt apply anymore :(
> 
> Yep, it's already been applied in what you're using here.

Ah, okay, that would explain it :)

> snip ...

> The mount command looks fine to me but mount(8) is failing.
> I'm not sure what's in the kernel your running, checking that would
> probably be a good idea, where can I find the source for it?

That specific mount comes from the ubuntu archives; 2.12r-17ubuntu2 in 
http://archive.ubuntu.com/ubuntu/pool/main/u/util-linux/

> The other thing is that it looks like the bind mount isn't triggering
> the dependent mount which implies that the "--disable-mount-locking"
> isn't being used with configure.
> 
> I've just looked at the Debian 5.0.2-2 package which I had lying around
> and I see that it doesn't use this configure option. This can't work at
> all if that configure option isn't given.

Ok, thanks, I'll try that. The current source for it is in 
http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-4.diff.gz
http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2.orig.tar.gz

> The other thing is that the Debian build uses both
> --enable-force-shutdown and --enable-ignore-busy which I don't
> recommend. One or the other should really be used and I recommend
> --enable-ignore-busy as the better choice.

Okaydokay, I'll update the packages and try again. Thanks alot!

> Ian

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
       [not found]     ` <1191332917.26331.171.camel@raven.themaw.net>
  2007-10-02 14:40       ` Lukas Kolbe
@ 2007-10-10 14:15       ` Lukas Kolbe
  2007-10-10 14:34         ` Lukas Kolbe
                           ` (2 more replies)
  1 sibling, 3 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-10 14:15 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Hi Ian, Jeff and list,

> The mount command looks fine to me but mount(8) is failing.
> I'm not sure what's in the kernel your running, checking that would
> probably be a good idea, where can I find the source for it?


> The other thing is that it looks like the bind mount isn't triggering
> the dependent mount which implies that the "--disable-mount-locking"
> isn't being used with configure.

There's an updated package in 
http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-5.diff.gz - the only change being adding --disable-mount-locking and removing --enable-force-shutdown during configure.


Here is what happens:


root@sorpe:~# /etc/init.d/autofs start
Starting automount: done.

root@sorpe:~# ls -la /vol/eclipse/bin/
total 0
dr-xr-xr-x 8 root root 0 2007-10-10 16:06 ..
?--------- ? ?    ?    ?                ? /vol/eclipse/bin/.

okay, something borked here :)

root@sorpe:~# ls -la /vol/eclipse/bin/
total 0
drwxr-xr-x 2 root root 0 2007-10-10 16:06 .
dr-xr-xr-x 8 root root 0 2007-10-10 16:06 ..

hm, now it's empty, but it should look like this:

root@sorpe:~# ls -la /vol/eclipse-3.1/bin/
total 0
drwxrwsr-x 2 root eclipse 96 2007-09-12 14:34 .
dr-xr-xr-x 7 root root     0 2007-10-10 16:06 ..
-rw-r--r-- 1 root eclipse  0 2007-09-12 14:34 foo

below is the syslog.

To me it seems like the following happens:

1. he sees a request for /vol/eclipse/bin and resolves it
2. he sees it's a local mount and tries to bind-mount it
from /vol/eclipse-3.1/bin
3. he sees /vol/eclipse-3.1/bin is not local and calls mount -t
autofs ... on it
4. he bind-mounts /vol/eclipse-3.1/bin to /vol/eclipse/bin
5. and _then_ nfs-mounts /vol/eclipse-3.1/bin from figaro:/..../

I tried to backport util-linux 2.13 for our systems, but this didn't
work out since it needs a new nfs-utils, new initscripts and all that,
so we're stuck with util-linux 2.12r-17ubuntu2 plus patches we could
apply.

-- 
Lukas


Oct 10 16:06:27 sorpe automount[20900]: Starting automounter version 5.0.2, master map /etc/auto.master
Oct 10 16:06:27 sorpe automount[20900]: using kernel protocol version 5.00
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_master: reading master file /etc/auto.master
Oct 10 16:06:27 sorpe automount[20900]: parse_init: parse(sun): init gathered global options: (null)
Oct 10 16:06:27 sorpe automount[20900]: mount_init: mount(bind): bind_works = 1
Oct 10 16:06:27 sorpe automount[20900]: lookup_read_master: lookup(file): read entry +auto_master_direct_linx86
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_master: reading master files auto_master_direct_linx86
Oct 10 16:06:27 sorpe automount[20900]: lookup(file): file map /etc/auto_master_direct_linx86 missing or not readable
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_master: reading master nis auto_master_direct_linx86
Oct 10 16:06:27 sorpe automount[20900]: lookup_init: lookup(yp): ctxt->mapname=auto_master_direct_linx86
Oct 10 16:06:27 sorpe automount[20900]: parse_init: parse(sun): init gathered global options: (null)
Oct 10 16:06:27 sorpe automount[20900]: master_do_mount: mounting /homes
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_map: reading map files auto_homes
Oct 10 16:06:27 sorpe automount[20900]: read_file_source_instance: file map /etc/auto_homes not found
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_map: reading map nis auto_homes
Oct 10 16:06:27 sorpe automount[20900]: lookup_init: lookup(yp): ctxt->mapname=auto_homes
Oct 10 16:06:27 sorpe automount[20900]: parse_init: parse(sun): init gathered global options: nosuid,grpid
Oct 10 16:06:27 sorpe automount[20900]: mount_init: mount(bind): bind_works = 1
Oct 10 16:06:27 sorpe automount[20900]: mounted indirect mount on /homes with timeout 300, freq 75 seconds
Oct 10 16:06:27 sorpe automount[20900]: master_do_mount: mounting /vol
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_map: reading map files auto_vol_linx86
Oct 10 16:06:27 sorpe automount[20900]: parse_init: parse(sun): init gathered global options: (null)
Oct 10 16:06:27 sorpe automount[20900]: lookup_nss_read_map: reading map nis auto_vol_linx86
Oct 10 16:06:27 sorpe automount[20900]: lookup_init: lookup(yp): ctxt->mapname=auto_vol_linx86
Oct 10 16:06:27 sorpe automount[20900]: parse_init: parse(sun): init gathered global options: (null)
Oct 10 16:06:27 sorpe automount[20900]: mounted indirect mount on /vol with timeout 300, freq 75 seconds
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 3
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_indirect: token 78, name eclipse, request pid 20909
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up eclipse
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): eclipse -> /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin   /include      -rw,nosuid,grpid          :/vol/eclipse-3.1/include   /lib          -rw,nosuid,grpid          :/vol/eclipse-3.1/lib   /man          -rw,nosuid,grpid          :/vol/eclipse-3.1/man   /share        -rw,nosuid,grpid          :/vol/eclipse-3.1/share   /src          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin   /include      -rw,nosuid,grpid          :/vol/eclipse-3.1/include   /lib          -rw,nosuid,grpid          :/vol/eclipse-3.1/lib   /man          -rw,nosuid,grpid          :/vol/eclipse-3.1/man   /share        -rw,nosuid,grpid          :/vol/eclipse-3.1/share   /src          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: 
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/bin") -> /bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/bin") -> :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /bin -> -rw,nosuid,grpid :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/include") -> /include
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/include") -> :/vol/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /include -> -rw,nosuid,grpid :/vol/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/lib") -> /lib
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/lib") -> :/vol/eclipse-3.1/lib
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /lib -> -rw,nosuid,grpid :/vol/eclipse-3.1/lib
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/man") -> /man
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/man") -> :/vol/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /man -> -rw,nosuid,grpid :/vol/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/share") -> /share
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/share") -> :/vol/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /share -> -rw,nosuid,grpid :/vol/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/src") -> /src
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse/src") -> figaro:/volumes/stud03/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /src -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/include
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/include
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/include
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/man
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/man
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/man
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/share
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/share
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/share
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/src
Oct 10 16:06:40 sorpe automount[20900]: send_ready: token = 78
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 5
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_direct: token 79, name /vol/eclipse/bin, request pid 20909
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): /vol/eclipse/bin -> -rw,nosuid,grpid :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: -rw,nosuid,grpid :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote(":/vol/eclipse-3.1/bin") -> :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): core of entry: options=rw,nosuid,grpid, loc=:/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: sun_mount: parse(sun): mounting root /vol, mountpoint /vol/eclipse/bin, what :/vol/eclipse-3.1/bin, fstype nfs, options rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): root=/vol name=/vol/eclipse/bin what=:/vol/eclipse-3.1/bin, fstype=nfs, options=rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): nfs options="rw,nosuid,grpid", nosymlink=0, ro=0
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mkdir_path /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): /vol/eclipse/bin is local, attempt bind mount
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): calling mkdir_path /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): calling mount --bind -s  -o defaults /vol/eclipse-3.1/bin /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 3
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_indirect: token 80, name eclipse-3.1, request pid 20912
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): eclipse-3.1 -> /bin          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/bin.linx86   /include      -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/include   /lib          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/lib.linx86   /man          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/man   /share        -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: /bin          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/bin.linx86   /include      -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/include   /lib          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/lib.linx86   /man          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/man   /share        -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: 
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/bin") -> /bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/bin.linx86") -> figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /bin -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/include") -> /include
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/include") -> figaro:/volumes/stud03/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /include -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/lib") -> /lib
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/lib.linx86") -> figaro:/volumes/stud03/eclipse-3.1/lib.linx86
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /lib -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/lib.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/man") -> /man
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/man") -> figaro:/volumes/stud03/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /man -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/share") -> /share
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/share") -> figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /share -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/include
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/lib
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/man
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: send_ready: token = 80
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: st_readmap: state 1 path /vol
Oct 10 16:06:40 sorpe automount[20900]: lookup_nss_read_map: reading map files auto_vol_linx86
Oct 10 16:06:40 sorpe automount[20900]: lookup_nss_read_map: reading map nis auto_vol_linx86
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): mounted /vol/eclipse-3.1/bin type bind on /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: send_ready: token = 79
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 5
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_direct: token 81, name /vol/eclipse-3.1/bin, request pid 20909
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): /vol/eclipse-3.1/bin -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/bin.linx86") -> figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): core of entry: options=rw,nosuid,grpid, loc=figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: sun_mount: parse(sun): mounting root /vol, mountpoint /vol/eclipse-3.1/bin, what figaro:/volumes/stud03/eclipse-3.1/bin.linx86, fstype nfs, options rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): root=/vol name=/vol/eclipse-3.1/bin what=figaro:/volumes/stud03/eclipse-3.1/bin.linx86, fstype=nfs, options=rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): nfs options="rw,nosuid,grpid", nosymlink=0, ro=0
Oct 10 16:06:40 sorpe automount[20900]: st_ready: st_ready(): state = 4 path /vol
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mkdir_path /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mount -t nfs -s -o rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86 /vol/eclipse-3.1/bin
Oct 10 16:06:41 sorpe automount[20900]: mount(nfs): mounted figaro:/volumes/stud03/eclipse-3.1/bin.linx86 on /vol/eclipse-3.1/bin
Oct 10 16:06:41 sorpe automount[20900]: send_ready: token = 81
Oct 10 16:06:41 sorpe automount[20900]: mounted /vol/eclipse-3.1/bin
Oct 10 16:07:55 sorpe automount[20900]: st_expire: state 1 path /vol
Oct 10 16:07:55 sorpe automount[20900]: expire_proc: exp_proc = 3082599312 path /vol
Oct 10 16:07:55 sorpe automount[20900]: expire_proc_indirect: expire /vol/eclipse-3.1/bin
Oct 10 16:08:00 sorpe automount[20900]: expire_proc_indirect: 1 remaining in /vol
Oct 10 16:08:00 sorpe automount[20900]: mount still busy /vol
Oct 10 16:08:00 sorpe automount[20900]: expire_cleanup: got thid 3082599312 path /vol stat 2
Oct 10 16:08:00 sorpe automount[20900]: expire_cleanup: sigchld: exp 3082599312 finished, switching from 2 to 1
Oct 10 16:08:00 sorpe automount[20900]: st_ready: st_ready(): state = 2 path /vol
Oct 10 16:08:14 sorpe automount[20900]: st_expire: state 1 path /vol
Oct 10 16:08:14 sorpe automount[20900]: expire_proc: exp_proc = 3082599312 path /vol
Oct 10 16:08:14 sorpe automount[20900]: expire_proc_indirect: expire /vol/eclipse-3.1/bin
Oct 10 16:08:19 sorpe automount[20900]: expire_proc_indirect: 1 remaining in /vol
Oct 10 16:08:19 sorpe automount[20900]: mount still busy /vol
Oct 10 16:08:19 sorpe automount[20900]: expire_cleanup: got thid 3082599312 path /vol stat 2
Oct 10 16:08:19 sorpe automount[20900]: expire_cleanup: sigchld: exp 3082599312 finished, switching from 2 to 1
Oct 10 16:08:19 sorpe automount[20900]: st_ready: st_ready(): state = 2 path /vol
Oct 10 16:08:40 sorpe automount[20900]: st_expire: state 1 path /homes
Oct 10 16:08:40 sorpe automount[20900]: expire_proc: exp_proc = 3082599312 path /homes
Oct 10 16:08:40 sorpe automount[20900]: expire_cleanup: got thid 3082599312 path /homes stat 0
Oct 10 16:08:40 sorpe automount[20900]: expire_cleanup: sigchld: exp 3082599312 finished, switching from 2 to 1
Oct 10 16:08:40 sorpe automount[20900]: st_ready: st_ready(): state = 2 path /homes


> Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 14:15       ` Lukas Kolbe
@ 2007-10-10 14:34         ` Lukas Kolbe
  2007-10-10 15:15         ` Ian Kent
  2007-10-11  3:13         ` Ian Kent
  2 siblings, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-10 14:34 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

> Hi Ian, Jeff and list,

Hi again,

> > The mount command looks fine to me but mount(8) is failing.
> > I'm not sure what's in the kernel your running, checking that would
> > probably be a good idea, where can I find the source for it?
> 
> 
> > The other thing is that it looks like the bind mount isn't triggering
> > the dependent mount which implies that the "--disable-mount-locking"
> > isn't being used with configure.
> 
> There's an updated package in ...


I just tried the same with the autofs-5.0.2-submount-deadlock.patch -
didn't make a difference unfortunately.

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 14:15       ` Lukas Kolbe
  2007-10-10 14:34         ` Lukas Kolbe
@ 2007-10-10 15:15         ` Ian Kent
  2007-10-10 15:29           ` Lukas Kolbe
  2007-10-11  3:13         ` Ian Kent
  2 siblings, 1 reply; 22+ messages in thread
From: Ian Kent @ 2007-10-10 15:15 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Wed, 2007-10-10 at 16:15 +0200, Lukas Kolbe wrote:
> Hi Ian, Jeff and list,
> 
> > The mount command looks fine to me but mount(8) is failing.
> > I'm not sure what's in the kernel your running, checking that would
> > probably be a good idea, where can I find the source for it?
> 
> 
> > The other thing is that it looks like the bind mount isn't triggering
> > the dependent mount which implies that the "--disable-mount-locking"
> > isn't being used with configure.
> 
> There's an updated package in 
> http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-5.diff.gz - the only change being adding --disable-mount-locking and removing --enable-force-shutdown during configure.
> 
> 
> Here is what happens:
> 
> 
> root@sorpe:~# /etc/init.d/autofs start
> Starting automount: done.
> 
> root@sorpe:~# ls -la /vol/eclipse/bin/
> total 0
> dr-xr-xr-x 8 root root 0 2007-10-10 16:06 ..
> ?--------- ? ?    ?    ?                ? /vol/eclipse/bin/.
> 
> okay, something borked here :)

Certainly is.
You're NFS is broken.

I'm not even going to look at the log or consider possible util-linux
version issues until you update the kernel on this system. This part of
the problem is very much the responsibility of the distribution kernel
maintainers. 

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 15:15         ` Ian Kent
@ 2007-10-10 15:29           ` Lukas Kolbe
  2007-10-10 16:47             ` Ian Kent
  0 siblings, 1 reply; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-10 15:29 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Hey Ian,

> 
> Certainly is.
> You're NFS is broken.
> 
> I'm not even going to look at the log or consider possible util-linux
> version issues until you update the kernel on this system. This part of
> the problem is very much the responsibility of the distribution kernel
> maintainers. 

I'm not quite so sure about that. nfs is working fine, I can
browse /vol/eclipse-3.1/bin and all other nfs shares without failure.
The bind-mount is what breaks, and the fact that the bind mount takes
place and gets executed _before_ /vol/eclipse-3.1/bin is actually
nfs-mounted, as you can clearly see in the log (only the relevant lines
here, for the full log see the other mail):



Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote(":/vol/eclipse-3.1/bin") -> :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 5
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_direct: token 79, name /vol/eclipse/bin, request pid 20909
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): /vol/eclipse/bin -> -rw,nosuid,grpid :/vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: sun_mount: parse(sun): mounting root /vol, mountpoint /vol/eclipse/bin, what :/vol/eclipse-3.1/bin, fstype nfs, options rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mkdir_path /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): /vol/eclipse/bin is local, attempt bind mount
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): calling mkdir_path /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): calling mount --bind -s  -o defaults /vol/eclipse-3.1/bin /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 3
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_indirect: token 80, name eclipse-3.1, request pid 20912
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): eclipse-3.1 -> /bin          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/bin.linx86   /include      -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/include   /lib          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/lib.linx86   /man          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/man   /share        -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: /bin          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/bin.linx86   /include      -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/include   /lib          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/lib.linx86   /man          -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/man   /share        -rw,nosuid,grpid          figaro:/volumes/stud03/eclipse-3.1/share
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: 
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("/bin") -> /bin
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mapent: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/bin.linx86") -> figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: add_offset_entry: parse(sun): added multi-mount offset /bin -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: mount_multi_triggers: mount offset /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: calling mount -t autofs -s  -o fd=11,pgrp=20900,minproto=5,maxproto=5,offset automount /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_autofs_offset: mounted trigger /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: send_ready: token = 80
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse-3.1
Oct 10 16:06:40 sorpe automount[20900]: st_readmap: state 1 path /vol
Oct 10 16:06:40 sorpe automount[20900]: lookup_nss_read_map: reading map files auto_vol_linx86
Oct 10 16:06:40 sorpe automount[20900]: lookup_nss_read_map: reading map nis auto_vol_linx86
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(bind): mounted /vol/eclipse-3.1/bin type bind on /vol/eclipse/bin
Oct 10 16:06:40 sorpe automount[20900]: send_ready: token = 79
Oct 10 16:06:40 sorpe automount[20900]: mounted /vol/eclipse/bin

Here, you see that the bind-mount of /vol/eclipse-3.1/bin
to /vol/eclipse/bin is finished even before autofs tried to mount
figaro:/volumes/stud03/eclipse-3.1/bin.linx86 to /vol/eclipse-3.1/bin.
It this is a kernel nfs problem, I'd be happy to let the distribution
maintainers know, alas to me it seems to be an autofs5 problem or might
be a mount locking problem.

What follows is the actual nfs mount:

Oct 10 16:06:40 sorpe automount[20900]: handle_packet: type = 5
Oct 10 16:06:40 sorpe automount[20900]: handle_packet_missing_direct: token 81, name /vol/eclipse-3.1/bin, request pid 20909
Oct 10 16:06:40 sorpe automount[20900]: attempting to mount entry /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): looking up /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: lookup_mount: lookup(file): /vol/eclipse-3.1/bin -> -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): expanded entry: -rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): gathered options: rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): dequote("figaro:/volumes/stud03/eclipse-3.1/bin.linx86") -> figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: parse_mount: parse(sun): core of entry: options=rw,nosuid,grpid, loc=figaro:/volumes/stud03/eclipse-3.1/bin.linx86
Oct 10 16:06:40 sorpe automount[20900]: sun_mount: parse(sun): mounting root /vol, mountpoint /vol/eclipse-3.1/bin, what figaro:/volumes/stud03/eclipse-3.1/bin.linx86, fstype nfs, options rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): root=/vol name=/vol/eclipse-3.1/bin what=figaro:/volumes/stud03/eclipse-3.1/bin.linx86, fstype=nfs, options=rw,nosuid,grpid
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): nfs options="rw,nosuid,grpid", nosymlink=0, ro=0
Oct 10 16:06:40 sorpe automount[20900]: st_ready: st_ready(): state = 4 path /vol
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mkdir_path /vol/eclipse-3.1/bin
Oct 10 16:06:40 sorpe automount[20900]: mount_mount: mount(nfs): calling mount -t nfs -s -o rw,nosuid,grpid figaro:/volumes/stud03/eclipse-3.1/bin.linx86 /vol/eclipse-3.1/bin
Oct 10 16:06:41 sorpe automount[20900]: mount(nfs): mounted figaro:/volumes/stud03/eclipse-3.1/bin.linx86 on /vol/eclipse-3.1/bin
Oct 10 16:06:41 sorpe automount[20900]: send_ready: token = 81
Oct 10 16:06:41 sorpe automount[20900]: mounted /vol/eclipse-3.1/bin


> Ian

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 15:29           ` Lukas Kolbe
@ 2007-10-10 16:47             ` Ian Kent
  2007-10-10 17:02               ` Lukas Kolbe
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Kent @ 2007-10-10 16:47 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Wed, 2007-10-10 at 17:29 +0200, Lukas Kolbe wrote:
> Hey Ian,
> 
> > 
> > Certainly is.
> > You're NFS is broken.
> > 
> > I'm not even going to look at the log or consider possible util-linux
> > version issues until you update the kernel on this system. This part of
> > the problem is very much the responsibility of the distribution kernel
> > maintainers. 
> 
> I'm not quite so sure about that. nfs is working fine, I can
> browse /vol/eclipse-3.1/bin and all other nfs shares without failure.
> The bind-mount is what breaks, and the fact that the bind mount takes
> place and gets executed _before_ /vol/eclipse-3.1/bin is actually
> nfs-mounted, as you can clearly see in the log (only the relevant lines
> here, for the full log see the other mail):

Sure, this may not be the only problem but, having been involved in
discussions about this a few times over the last year I'm pretty sure
there is also a race in the NFS client kernel code of the kernel you are
using.

I'll have a look at the log and the map your using and try and reproduce
what your seeing.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 16:47             ` Ian Kent
@ 2007-10-10 17:02               ` Lukas Kolbe
  2007-10-11  8:45                 ` Ian Kent
  0 siblings, 1 reply; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-10 17:02 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Hello Ian,

> Sure, this may not be the only problem but, having been involved in
> discussions about this a few times over the last year I'm pretty sure
> there is also a race in the NFS client kernel code of the kernel you are
> using.
> 
> I'll have a look at the log and the map your using and try and reproduce
> what your seeing.

Thank you very much, I look forward to your findings. If you think it's
a bug in either the kernel or util-linux or nfs-utils, I'll ponder the
distributor from now on.

> Ian


-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 14:15       ` Lukas Kolbe
  2007-10-10 14:34         ` Lukas Kolbe
  2007-10-10 15:15         ` Ian Kent
@ 2007-10-11  3:13         ` Ian Kent
  2007-10-11  8:24           ` Lukas Kolbe
  2 siblings, 1 reply; 22+ messages in thread
From: Ian Kent @ 2007-10-11  3:13 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Wed, 2007-10-10 at 16:15 +0200, Lukas Kolbe wrote:
> Hi Ian, Jeff and list,
> 
> > The mount command looks fine to me but mount(8) is failing.
> > I'm not sure what's in the kernel your running, checking that would
> > probably be a good idea, where can I find the source for it?
> 
> 
> > The other thing is that it looks like the bind mount isn't triggering
> > the dependent mount which implies that the "--disable-mount-locking"
> > isn't being used with configure.
> 
> There's an updated package in 
> http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-5.diff.gz - the only change being adding --disable-mount-locking and removing --enable-force-shutdown during configure.

File not found?

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-11  3:13         ` Ian Kent
@ 2007-10-11  8:24           ` Lukas Kolbe
  0 siblings, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-11  8:24 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Ups.

> > There's an updated package in 
> >
> http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-5.diff.gz - the only change being adding --disable-mount-locking and removing --enable-force-shutdown during configure.
> 
> File not found?

Sorry about that - in the meantime I uploaded a new version with the
latest patch (4. oct.) applied and didn't realise that the old one got
deleted.

Try this:
http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-6.diff.gz 

I promise I won't update until I hear from you :)

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-10 17:02               ` Lukas Kolbe
@ 2007-10-11  8:45                 ` Ian Kent
  2007-10-11  9:11                   ` Ian Kent
                                     ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Ian Kent @ 2007-10-11  8:45 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Wed, 2007-10-10 at 19:02 +0200, Lukas Kolbe wrote:
> Hello Ian,
> 
> > Sure, this may not be the only problem but, having been involved in
> > discussions about this a few times over the last year I'm pretty sure
> > there is also a race in the NFS client kernel code of the kernel you are
> > using.
> > 
> > I'll have a look at the log and the map your using and try and reproduce
> > what your seeing.
> 
> Thank you very much, I look forward to your findings. If you think it's
> a bug in either the kernel or util-linux or nfs-utils, I'll ponder the
> distributor from now on.

Congratulations Lucas you've managed to create an autofs map that the
current autofs4 kernel module can't handle, well done.

I'll try to explain, but I can't be sure I'll be very clear.

First a little history.

Over time a mechanism of VFS operation intents has been added to the
kernel VFS. During the version 5 development (and in particular the
direct and offset mounts, the mount triggers you see mounted in the log)
I felt that I would need to handle these but in the end it appeared I
could do everything I needed without checking for them.

Now the problem.

To deal with the case we have here I need to check for the LOOKUP_ACCESS
intent in the kernel module method that deals with catching mount
requests for the mount triggers during path lookup.

The solution is fairly simple, as you can see from the patch below but
it begs the question "will this also catch stuff that it shouldn't
catch" so I need to continue testing it. 

The patch below should apply ok to most kernels you're using as there
haven't been changes in this area for quite a while. It would be good if
you could test this out and see if you observe any other side effects.

Ian

---
diff -up linux-2.6.21/fs/autofs4/root.c.lookup_access-intent linux-2.6.21/fs/autofs4/root.c
--- linux-2.6.21/fs/autofs4/root.c.lookup_access-intent	2007-10-11 16:32:07.000000000 +0800
+++ linux-2.6.21/fs/autofs4/root.c	2007-10-11 16:34:59.000000000 +0800
@@ -20,6 +20,8 @@
 #include <linux/smp_lock.h>
 #include "autofs_i.h"
 
+#define DIRECT_TRIGGER_FLAGS (LOOKUP_CONTINUE|LOOKUP_DIRECTORY|LOOKUP_ACCESS)
+
 static int autofs4_dir_symlink(struct inode *,struct dentry *,const char *);
 static int autofs4_dir_unlink(struct inode *,struct dentry *);
 static int autofs4_dir_rmdir(struct inode *,struct dentry *);
@@ -336,7 +338,7 @@ static void *autofs4_follow_link(struct 
 		nd->flags);
 
 	/* If it's our master or we shouldn't trigger a mount we're done */
-	lookup_type = nd->flags & (LOOKUP_CONTINUE | LOOKUP_DIRECTORY);
+	lookup_type = nd->flags & DIRECT_TRIGGER_FLAGS;
 	if (oz_mode || !lookup_type)
 		goto done;

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-11  8:45                 ` Ian Kent
@ 2007-10-11  9:11                   ` Ian Kent
  2007-10-11 10:49                   ` Lukas Kolbe
  2007-10-17 10:19                   ` nested automounts: bind and nfs Lukas Kolbe
  2 siblings, 0 replies; 22+ messages in thread
From: Ian Kent @ 2007-10-11  9:11 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Thu, 2007-10-11 at 16:45 +0800, Ian Kent wrote:
> The solution is fairly simple, as you can see from the patch below but
> it begs the question "will this also catch stuff that it shouldn't
> catch" so I need to continue testing it. 
> 
> The patch below should apply ok to most kernels you're using as there
> haven't been changes in this area for quite a while. It would be good if
> you could test this out and see if you observe any other side effects.

It looks like this will need more work.
I'm seeing other breakage with the patch.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-11  8:45                 ` Ian Kent
  2007-10-11  9:11                   ` Ian Kent
@ 2007-10-11 10:49                   ` Lukas Kolbe
  2007-10-11 11:43                     ` Ian Kent
  2007-10-17 10:19                   ` nested automounts: bind and nfs Lukas Kolbe
  2 siblings, 1 reply; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-11 10:49 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs


Hi Ian!


> Congratulations Lucas you've managed to create an autofs map that the
> current autofs4 kernel module can't handle, well done.

D'Oh!

> I'll try to explain, but I can't be sure I'll be very clear.

I'm so sorry, I didn't mean to :)

It's just that I came into this situation where we're having
historically a Sun-based server (and client) park and are slowly and
(luckily) only partially switching to linux where it makes sense. The
system as you can imagine has grown over time (e.g. the last twenty-some
years IIRC, the oldest configuration file I touched was from 1994 I
think), and I now have to make linux fit into that ... I never would
have thought that Unix is _that_ much different from Unix. 

> Now the problem.

I *think* I understand what you describe there. If I were more
knowledgeable about the internals of Linux and autofs I could be of more
help :(

> The patch below should apply ok to most kernels you're using as there
> haven't been changes in this area for quite a while. It would be good if
> you could test this out and see if you observe any other side effects.

Looks fairly simple - shall I test it even with your warning in the
other mail?

> Ian

I really appreciate what you're doing, Ian. This is tough stuff and to
me it looks very scary.

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-11 10:49                   ` Lukas Kolbe
@ 2007-10-11 11:43                     ` Ian Kent
  2007-10-11 13:43                       ` Success! (was: Re: nested automounts: bind and nfs) Lukas Kolbe
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Kent @ 2007-10-11 11:43 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Thu, 2007-10-11 at 12:49 +0200, Lukas Kolbe wrote:
> Hi Ian!
> 
> 
> > Congratulations Lucas you've managed to create an autofs map that the
> > current autofs4 kernel module can't handle, well done.
> 
> D'Oh!
> 
> > I'll try to explain, but I can't be sure I'll be very clear.
> 
> I'm so sorry, I didn't mean to :)
> 
> It's just that I came into this situation where we're having
> historically a Sun-based server (and client) park and are slowly and
> (luckily) only partially switching to linux where it makes sense. The
> system as you can imagine has grown over time (e.g. the last twenty-some
> years IIRC, the oldest configuration file I touched was from 1994 I
> think), and I now have to make linux fit into that ... I never would
> have thought that Unix is _that_ much different from Unix. 
> 
> > Now the problem.
> 
> I *think* I understand what you describe there. If I were more
> knowledgeable about the internals of Linux and autofs I could be of more
> help :(

No matter, the point was only that this unexpected case needed to be
caught so I could send a mount request to the daemon. The VFS is quite a
complicated beast and I'm certainly no expert but have become familiar
with much of it, to some small extent, through working on autofs.

> 
> > The patch below should apply ok to most kernels you're using as there
> > haven't been changes in this area for quite a while. It would be good if
> > you could test this out and see if you observe any other side effects.
> 
> Looks fairly simple - shall I test it even with your warning in the
> other mail?

Think so.

Turns out that I had some other problems, not the least of which is that
I'm running a version of autofs that that has changes I've just started
testing and I have a kernel that requires a "nosharecache" mount option
(that wasn't in my autofs configuration) for autofs to work (don't ask
it's not worth it). So there were lots of fails to begin with, but in
reality the patched module seem to be working ok.

> 
> > Ian
> 
> I really appreciate what you're doing, Ian. This is tough stuff and to
> me it looks very scary.

Ya, I guess it is but I've spent a long time working on autofs so I
should know what's going on (you'd think). The other thing to remember
is that, with version 5, we've only just now reached a position where
our feature set is comparable to other industry standard automounters
that have had many years of maturation. People tend to forget this and
can't understand why we continue to find bugs and things that don't
quite work, but we are making strong progress.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Success! (was: Re:  nested automounts: bind and nfs)
  2007-10-11 11:43                     ` Ian Kent
@ 2007-10-11 13:43                       ` Lukas Kolbe
  2007-10-11 14:36                         ` Ian Kent
  0 siblings, 1 reply; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-11 13:43 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Hi Ian!
Hi Mathias! Please see below why I think this might be important for you
as well.
 
> > I *think* I understand what you describe there. If I were more
> > knowledgeable about the internals of Linux and autofs I could be of more
> > help :(
> 
> No matter, the point was only that this unexpected case needed to be
> caught so I could send a mount request to the daemon. The VFS is quite a
> complicated beast and I'm certainly no expert but have become familiar
> with much of it, to some small extent, through working on autofs.

Must have bean painful ;)

 
> > Looks fairly simple - shall I test it even with your warning in the
> > other mail?
> 
> Think so.

It didn't apply cleanly to 2.6.20 so I changed it manually. I just
tested with only rebuilding the autofs4.ko-module and my kernel now
thinks it's tainted (wtf...), BUT it works! I can't believe it! A
one-liner, or, actually, a one-bitter ;)!

I'm currently rebuilding the whole kernel so that I have a new .deb that
I can roll out and test in a broader environment, but the exact use case
of a recursive automount now seems to work perfectly well.
Congratulations and thank you!

After testing, I'll push this forward to Ubuntu, but I don't have high
hopes of it to be included in any update. It should definitly go into
2.6.24, I'll report back if it breaks anything else.

If I understand this correctly, would this be the fix needed for the
'nested mounts with loop'-problem Mathias Koenig sees, as the problem
seems to be quite a similar one as ours ...

> Turns out that I had some other problems, not the least of which is that
> I'm running a version of autofs that that has changes I've just started
> testing and I have a kernel that requires a "nosharecache" mount option
> (that wasn't in my autofs configuration) for autofs to work (don't ask
> it's not worth it). So there were lots of fails to begin with, but in
> reality the patched module seem to be working ok.

I recently read about nosharecache & stuff on kerneltrap.org so I feel
with you ;(


> > 
> > > Ian
> > 
> > I really appreciate what you're doing, Ian. This is tough stuff and to
> > me it looks very scary.
> 
> Ya, I guess it is but I've spent a long time working on autofs so I
> should know what's going on (you'd think). The other thing to remember
> is that, with version 5, we've only just now reached a position where
> our feature set is comparable to other industry standard automounters
> that have had many years of maturation. People tend to forget this and
> can't understand why we continue to find bugs and things that don't
> quite work, but we are making strong progress.

How right you are. On older Linux versions, we used a custom-patched amd
that required a working hesiod installation which we definitly want to
get rid of ...

> Ian

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: Success! (was: Re:  nested automounts: bind and nfs)
  2007-10-11 13:43                       ` Success! (was: Re: nested automounts: bind and nfs) Lukas Kolbe
@ 2007-10-11 14:36                         ` Ian Kent
  0 siblings, 0 replies; 22+ messages in thread
From: Ian Kent @ 2007-10-11 14:36 UTC (permalink / raw)
  To: Lukas Kolbe; +Cc: autofs

On Thu, 2007-10-11 at 15:43 +0200, Lukas Kolbe wrote:
> Hi Ian!
> Hi Mathias! Please see below why I think this might be important for you
> as well.
>  
> > > I *think* I understand what you describe there. If I were more
> > > knowledgeable about the internals of Linux and autofs I could be of more
> > > help :(
> > 
> > No matter, the point was only that this unexpected case needed to be
> > caught so I could send a mount request to the daemon. The VFS is quite a
> > complicated beast and I'm certainly no expert but have become familiar
> > with much of it, to some small extent, through working on autofs.
> 
> Must have bean painful ;)

Hahahah! but fun in itself. ;)

> 
>  
> > > Looks fairly simple - shall I test it even with your warning in the
> > > other mail?
> > 
> > Think so.
> 
> It didn't apply cleanly to 2.6.20 so I changed it manually. I just
> tested with only rebuilding the autofs4.ko-module and my kernel now
> thinks it's tainted (wtf...), BUT it works! I can't believe it! A
> one-liner, or, actually, a one-bitter ;)!

Odd, but no big problem.

> 
> I'm currently rebuilding the whole kernel so that I have a new .deb that
> I can roll out and test in a broader environment, but the exact use case
> of a recursive automount now seems to work perfectly well.
> Congratulations and thank you!

Keep an eye on expiration as well, make sure everything continues to
expire correctly, often times autofs will continue to work ok even when
it isn't quite expiring properly.

> 
> After testing, I'll push this forward to Ubuntu, but I don't have high
> hopes of it to be included in any update. It should definitly go into
> 2.6.24, I'll report back if it breaks anything else.

Ok, great, I'll keep testing myself and post it on LKML provided we
don't have any further problems.

> 
> If I understand this correctly, would this be the fix needed for the
> 'nested mounts with loop'-problem Mathias Koenig sees, as the problem
> seems to be quite a similar one as ours ...

Similar but not the same.

That particular issue takes a different path through the daemon and the
patch Mathias posted does fix the problem. I'll be committing something
very similar to the autofs repo and putting the patch on kernel.org
soonish.

Ian

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-11  8:45                 ` Ian Kent
  2007-10-11  9:11                   ` Ian Kent
  2007-10-11 10:49                   ` Lukas Kolbe
@ 2007-10-17 10:19                   ` Lukas Kolbe
  2 siblings, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-10-17 10:19 UTC (permalink / raw)
  To: Ian Kent; +Cc: autofs

Hi Ian!


> To deal with the case we have here I need to check for the LOOKUP_ACCESS
> intent in the kernel module method that deals with catching mount
> requests for the mount triggers during path lookup.
> 
> The solution is fairly simple, as you can see from the patch below but
> it begs the question "will this also catch stuff that it shouldn't
> catch" so I need to continue testing it. 
> 
> The patch below should apply ok to most kernels you're using as there
> haven't been changes in this area for quite a while. It would be good if
> you could test this out and see if you observe any other side effects.

I can confirm now that the patch works as it should, ie it recursively
mounts as it should and expires the mounts in the correct order. 

> Ian

-- 
Lukas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: nested automounts: bind and nfs
  2007-10-01 14:08 nested automounts: bind and nfs Lukas Kolbe
                   ` (2 preceding siblings ...)
  2007-10-02  5:03 ` Ian Kent
@ 2007-11-08 16:44 ` Lukas Kolbe
  3 siblings, 0 replies; 22+ messages in thread
From: Lukas Kolbe @ 2007-11-08 16:44 UTC (permalink / raw)
  To: autofs; +Cc: Ian Kent

Hello Ian, Hi List,

I'm sorry I have to bring this thread up again :(

> Given the following mount map:
> 
> eclipse-3.1 \
>   /bin          -rw,nosuid,grpid          fileserver:/volumes/vol1/eclipse-3.1/bin.linx86 \
> 
> eclipse \
>   /bin          -rw,nosuid,grpid          :/vol/eclipse-3.1/bin \
> 
> We can't access /vol/eclipse/bin on the client if /vol/eclipse-3.1/bin
> is not already mounted. The log says:

The above map now works with the kernel patch you send in october, but
we know stumbled over a case that didn't work (found in the map
for /vol): 

jdk-1.5.13 -rw,nosuid,grpid fileserver:/export/stud/vol/jdk-1.5.13/linx86
jdk-1.5    -rw,nosuid,grpid :/vol/jdk-1.5.13

Debug log below. To me, it looks very similar to the problems we had
with the eclipse volume (he bind-mounts /vol/jdk-1.5
from /vol/jdk-1.5.13 that is not yet mounted and only then
mounts /vol/jdk-1.5.13 ...). Could it be that this (not so nested) map
triggers a different code-path than the other so that the kernel patch
in this thread doesn't work?

The diff.gz against autofs5-5.0.2 is at
http://packages.techfak.uni-bielefeld.de/pool/techfak-testing/a/autofs5/autofs5_5.0.2-7techfakfeisty0.diff.gz


-- 
Lukas

Nov  8 17:29:50 lahn automount[27009]: handle_packet_missing_indirect: token 206, name jdk-1.5, request pid 27086
Nov  8 17:29:50 lahn automount[27009]: attempting to mount entry /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: file map not found
Nov  8 17:29:50 lahn automount[27009]: lookup_mount: lookup(yp): looking up jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: lookup_mount: lookup(yp): jdk-1.5 -> -rw,nosuid,grpid          :/vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): expanded entry: -rw,nosuid,grpid          :/vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): gathered options: rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): dequote(":/vol/jdk-1.5.13") -> :/vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): core of entry: options=rw,nosuid,grpid, loc=:/vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: sun_mount: parse(sun): mounting root /vol, mountpoint jdk-1.5, what :/vol/jdk-1.5.13, fstype nfs, options rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): root=/vol name=jdk-1.5 what=:/vol/jdk-1.5.13, fstype=nfs, options=rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): nfs options="rw,nosuid,grpid", nosymlink=0, ro=0
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): calling mkdir_path /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): jdk-1.5 is local, attempt bind mount
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(bind): calling mkdir_path /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(bind): calling mount --bind -s  -o defaults /vol/jdk-1.5.13 /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(bind): mounted /vol/jdk-1.5.13 type bind on /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: send_ready: token = 206
Nov  8 17:29:50 lahn automount[27009]: handle_packet: type = 3
Nov  8 17:29:50 lahn automount[27009]: handle_packet_missing_indirect: token 207, name jdk-1.5.13, request pid 27086
Nov  8 17:29:50 lahn automount[27009]: attempting to mount entry /vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: mounted /vol/jdk-1.5
Nov  8 17:29:50 lahn automount[27009]: file map not found
Nov  8 17:29:50 lahn automount[27009]: lookup_mount: lookup(yp): looking up jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: lookup_mount: lookup(yp): jdk-1.5.13 -> -rw,nosuid,grpid          fileserver:/export/stud/vol/jdk-1.5.13/linx86
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): expanded entry: -rw,nosuid,grpid          fileserver:/export/stud/vol/jdk-1.5.13/linx86
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): gathered options: rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): dequote("fileserver:/export/stud/vol/jdk-1.5.13/linx86") -> fileserver:/export/stud/vol/jdk-1.5.13/linx86
Nov  8 17:29:50 lahn automount[27009]: parse_mount: parse(sun): core of entry: options=rw,nosuid,grpid, loc=fileserver:/export/stud/vol/jdk-1.5.13/linx86
Nov  8 17:29:50 lahn automount[27009]: sun_mount: parse(sun): mounting root /vol, mountpoint jdk-1.5.13, what fileserver:/export/stud/vol/jdk-1.5.13/linx86, fstype nfs, options rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): root=/vol name=jdk-1.5.13 what=fileserver:/export/stud/vol/jdk-1.5.13/linx86, fstype=nfs, options=rw,nosuid,grpid
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): nfs options="rw,nosuid,grpid", nosymlink=0, ro=0
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): calling mkdir_path /vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: mount_mount: mount(nfs): calling mount -t nfs -s -o rw,nosuid,grpid fileserver:/export/stud/vol/jdk-1.5.13/linx86 /vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: mount(nfs): mounted fileserver:/export/stud/vol/jdk-1.5.13/linx86 on /vol/jdk-1.5.13
Nov  8 17:29:50 lahn automount[27009]: send_ready: token = 207
Nov  8 17:29:50 lahn automount[27009]: mounted /vol/jdk-1.5.13

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2007-11-08 16:44 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-01 14:08 nested automounts: bind and nfs Lukas Kolbe
2007-10-01 14:17 ` Lukas Kolbe
2007-10-02  4:53 ` Ian Kent
2007-10-02 10:25   ` Lukas Kolbe
     [not found]   ` <1191321007.27255.12.camel@localhost>
     [not found]     ` <1191332917.26331.171.camel@raven.themaw.net>
2007-10-02 14:40       ` Lukas Kolbe
2007-10-10 14:15       ` Lukas Kolbe
2007-10-10 14:34         ` Lukas Kolbe
2007-10-10 15:15         ` Ian Kent
2007-10-10 15:29           ` Lukas Kolbe
2007-10-10 16:47             ` Ian Kent
2007-10-10 17:02               ` Lukas Kolbe
2007-10-11  8:45                 ` Ian Kent
2007-10-11  9:11                   ` Ian Kent
2007-10-11 10:49                   ` Lukas Kolbe
2007-10-11 11:43                     ` Ian Kent
2007-10-11 13:43                       ` Success! (was: Re: nested automounts: bind and nfs) Lukas Kolbe
2007-10-11 14:36                         ` Ian Kent
2007-10-17 10:19                   ` nested automounts: bind and nfs Lukas Kolbe
2007-10-11  3:13         ` Ian Kent
2007-10-11  8:24           ` Lukas Kolbe
2007-10-02  5:03 ` Ian Kent
2007-11-08 16:44 ` Lukas Kolbe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.